gpt4 book ai didi

android - 如何单击或点击不同单词上的 TextView 文本?

转载 作者:IT老高 更新时间:2023-10-28 23:16:37 25 4
gpt4 key购买 nike

如何通过单击带有两个不同单词的 TextView 来移动到另一个 View 。这是我正在使用的字符串。

By clicking Sign Up, you are indicating that you have read and agree to the 
Term of Use and Privacy Policy.

我想让这两个词(使用条款、隐私政策)用不同的颜色和可点击..

我知道如何为特定单词着色。我想让它可以点击。

最佳答案

我终于弄清楚了如何在 TextView 中有多个可点击的部分。重要的是他们都有自己的 ClickableSpan!那是我第一次测试时出错的地方。如果它们具有相同的 ClickableSpan 实例,则仅记住最后设置的跨度。

我创建了一个字符串,其中所需的可点击区域被“[”和“]”包围。

String sentence = "this is [part 1] and [here another] and [another one]";

这里是设置的TextView,setMovementMehthod也是强制的:

textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(addClickablePart(sentence), BufferType.SPANNABLE);

我已经创建了这个函数,它将处理可点击区域的创建:

private SpannableStringBuilder addClickablePart(String str) {
SpannableStringBuilder ssb = new SpannableStringBuilder(str);

int idx1 = str.indexOf("[");
int idx2 = 0;
while (idx1 != -1) {
idx2 = str.indexOf("]", idx1) + 1;

final String clickString = str.substring(idx1, idx2);
ssb.setSpan(new ClickableSpan() {

@Override
public void onClick(View widget) {
Toast.makeText(getView().getContext(), clickString,
Toast.LENGTH_SHORT).show();
}
}, idx1, idx2, 0);
idx1 = str.indexOf("[", idx2);
}

return ssb;
}

关于android - 如何单击或点击不同单词上的 TextView 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9584136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com