我有一个构建可点击标签的函数,用于textview。它如下所示:
我能看到一个包含5个可单独点击标签的textview。但问题是,当任何标签被点击时,输出的Log都是textview的整个文本。
我做错了什么?我该如何获取单击的各个标签的文本?
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都是textview的整个文本。
我做错了什么?我该如何获取单击的各个标签的文本?
token
使用。不过你的代码看起来有点问题,start
始终为0... - kabuko