TextView Android内部的可点击单词[重复]
Posted
技术标签:
【中文标题】TextView Android内部的可点击单词[重复]【英文标题】:Clickable words inside of TextView Android [duplicate] 【发布时间】:2014-10-11 08:48:09 【问题描述】:我有一个包含主题标签的文本视图。 #first #second #third
。我的问题是如何检测点击了哪个主题标签,以便我可以执行一些操作 - 例如。祝酒词。
这可以使用 TextView 小部件吗?我应该改用其他小部件吗?
更新
我使用this example 找到了我的解决方案。希望以后能对其他人有所帮助!
【问题讨论】:
【参考方案1】:您可以使用 spannable string 来实现:
SpannableString ss = new SpannableString("Your string");
String[] words = ss.split(" ");
for(final String word : words)
if(word.startsWith("#"))
ClickableSpan clickableSpan = new ClickableSpan()
@Override
public void onClick(View textView)
//use word here to make a decision
;
ss.setSpan(clickableSpan, ss.indexOf(word), ss.indexOf(word) + word.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
【讨论】:
感谢@vipul 并且要获得点击的单词,您可以在 onClick 中使用它: Spanned sp = (Spanned) ((TextView)textView).getText(); int start = sp.getSpanStart(this); int end = sp.getSpanEnd(this); String word = sp.subSequence(start, end).toString();SpannableString
没有 split
和 indexOf
方法以上是关于TextView Android内部的可点击单词[重复]的主要内容,如果未能解决你的问题,请参考以下文章
带有可点击链接的 Android TextView:如何捕获点击?
Android - 在 TextView 中突出显示一个单词?