私のAndroidアプリケーションはスポイラータグを扱うためにClickableSpan
を使用しています。 TextView
にテキスト置換を実装しようとしていますが、.replaceRange
は何もしません。 startPos
とendPos
が有効な位置であることを確認できます。Android Kotlin `.replaceRange`はSpannableStringのテキストを置き換えません
var text = ((textView as TextView).text as SpannableString)
var spans = text.getSpans(0, text.length, SpoilerSpan::class.java)
for (span in spans) {
if (span == this) {
val startPos = text.getSpanStart(span)
val endPos = text.getSpanEnd(span)
printout(startPos.toString() + " " + endPos.toString())
text.replaceRange(startPos, endPos, spoilerText)
printout(text.toString())
}
}
textView.text = text
try 'Editable#replace' – pskink
@pskinkどのようにしてEditableにキャストできますか? – Feelfree
あなたと同じように? 'var text =((TextViewとしてのTextView).textをSpannableStringとして)' – pskink