java - 从 textView 中提取一部分文本并使该文本可点击?

标签 java android

假设我有一个字符串

String str =" Hello, @John how's going on"

现在我想知道,如何突出显示单词 @John 并希望使其可从 Textview 中点击

最佳答案

您可以在 spannable 字符串中使用 clickable span,如下所示:-

SpannableString ss = new SpannableString(" Hello, @John how's going on");
ClickableSpan clickableSpan = new ClickableSpan() {
   @Override
   public void onClick(View textView) {
     //perform click operation
   }
   @Override
   public void updateDrawState(TextPaint ds) {

   }
};

ss.setSpan(clickableSpan, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

yourTv.setText(ss);
yourTv.setMovementMethod(LinkMovementMethod.getInstance());
yourTv.setHighlightColor(Color.TRANSPARENT);

startIndex - is the index of J of word John in the full string

endIndex - is the index of n of the word John in the full string.

&& 一旦 john 被点击,就会触发 onclick 方法..

编辑

要提取用户名 John,您可以拆分字符串并像下面的代码 fragment 一样获取它:-

 String username = yourString.split("@")[1].split(" ")[0]; // this will extract john 

关于java - 从 textView 中提取一部分文本并使该文本可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54972875/

相关文章:

java - android TextView设置文本问题

android - 如何以编程方式将气泡图像设置为android中textview的背景?

android - 定期工作请求停止重复的原因是什么?

java - IntelliJ IDEA 中的调试超时

java - 搜索从 xml 文档创建的 DOM 并将值复制到电子表格/csv

java - OneSignal Android NotificationOpenedHandler - 开始 Activity

java - 我如何向其中添加 onClickListener?

android - SlidingMenu 集成的问题

java - 扫描所有 beans,就好像它们在 Spring 的当前包中一样?

java - ArrayList 对象 (java)