3
私は、テキストビュー用のクリック可能なタグを作成する機能を持っています。次のようになります。テキストビュー内の複数のクリックスパン
private CharSequence tagsBuilder(String text, String token) {
SpannableStringBuilder builtTags = new SpannableStringBuilder();
int start = 0, end = 0;
for(int i = 0; i < 5; i++) {
start = 0;
end = text.indexOf(token, 0);
try {
if(start < end) {
SpannableStringBuilder ssb = new SpannableStringBuilder(text.substring(start, end));
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View v)
{
Log.i("DEBUGTAG", "Span clicked - " + ((TextView) v).getText());
}
}, start, end, 0);
builtTags.append(ssb);
builtTags.append(" ");
text = text.substring(end + 1);
}
} catch (IndexOutOfBoundsException e) {
break;
}
}
return builtTags;
}
個別にクリック可能なタグが5つあります。しかし、問題は、クリックされたタグのために印刷されるログは、テキストビューの全文です。
ここで何か問題がありますか?クリックされた個々のタグのテキストを取得する方法TextView
の内容をログに記録します
Log.i("DEBUGTAG", "Span clicked - " + ((TextView) v).getText());
:
私の悪い、私は適切なパラメータを命名している必要があります。パラメータのトークンは実際にはセパレータです。現在、コンマ区切り文字列をトークンに分割するために、 "、"が渡されます。 – GreenBee
ああ、そうですね、私はあなたのコードをすべてそっくりと読んでいませんでした。次に、私の 'token'の使い方をあなたが望む部分文字列に置き換えます。あなたのコードは見えますが、 'start'は常に0です。 – kabuko
おかげで助けてくれました。私はあなたの元の提案を深く考えなかったが、今はそれを得る。それはわずかな変更 - 最終的なString mText = ssb.toString()で動作しました。 このコードは進行中の作業です。私はそれを最適化して不要なヴァルを除去しました。 – GreenBee