TextView Android中的可点击单词

Dar*_*ski 2 java android textview android-widget android-textattributes

我有一个包含主题标签的textview.#first #second #third.我的问题是如何检测单击哪个#标签,以便执行某些操作 - 例如.为这个词做吐司.这可能使用TextView小部件吗?我应该使用其他一些小部件吗?

UPDATE

我用这个例子找到了我的解决方案.希望将来能帮助别人!

vip*_*tal 10

您可以使用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());
Run Code Online (Sandbox Code Playgroud)

  • `SpannableString` 没有 `split` 和 `indexOf` 方法 (3认同)