如何获取在 android(Java) 的文本视图中添加的 SpannableStrings 列表?
How to get list of SpannableStrings added in a textview in android(Java)?
我是 android 开发 Java 的新手,我正在开发一个应用程序,其中我在 TextView 中有多个 SpannableStrings。通过这种方式,我可以处理每个字符串 differently.I 一旦我在 TextView 中添加了多个 SpannableStrings,我将如何获得这些 SpannableStrings 的列表?我能够使用 ClickSpan 获取点击事件,我看不到添加 SpannableStrings 列表的方法。我需要 SpannableString 来使用 ClickSpan 以编程方式触发点击事件。对不起,任何非技术术语。下面是我的代码。
谢谢。
for(int i =0;i<list.size();i++) {
ClickableSpan span = new ClickableSpan() {
@Override
public void onClick(View widget) {
//
}
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(ds.linkColor);
ds.setUnderlineText(false);
ds.setColor(Color.rgb(0, 0, 0));
};
SpannableString spannableString = new SpannableString(list.get(i));
spannableString.setSpan(span, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStrings.add(spannableString);
view.append(spannableString);
}
不如这样:
SpannableStringBuilder spannableString = (SpannableStringBuilder) textView.getText();
Object[] allSpans = spannableString.getSpans(0, textView.getText().length(), Object.class);
我是 android 开发 Java 的新手,我正在开发一个应用程序,其中我在 TextView 中有多个 SpannableStrings。通过这种方式,我可以处理每个字符串 differently.I 一旦我在 TextView 中添加了多个 SpannableStrings,我将如何获得这些 SpannableStrings 的列表?我能够使用 ClickSpan 获取点击事件,我看不到添加 SpannableStrings 列表的方法。我需要 SpannableString 来使用 ClickSpan 以编程方式触发点击事件。对不起,任何非技术术语。下面是我的代码。
谢谢。
for(int i =0;i<list.size();i++) {
ClickableSpan span = new ClickableSpan() {
@Override
public void onClick(View widget) {
//
}
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(ds.linkColor);
ds.setUnderlineText(false);
ds.setColor(Color.rgb(0, 0, 0));
};
SpannableString spannableString = new SpannableString(list.get(i));
spannableString.setSpan(span, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStrings.add(spannableString);
view.append(spannableString);
}
不如这样:
SpannableStringBuilder spannableString = (SpannableStringBuilder) textView.getText();
Object[] allSpans = spannableString.getSpans(0, textView.getText().length(), Object.class);