在Android中的TextvView中,在运行时生成的一行中可以选择几个选择性单词?

时间:2014-07-07 13:49:49

标签: android textview onclicklistener

我正在开发一个我收到评论的应用程序,我必须在列表视图中显示。在评论中,我几乎没有标记好友的名字。在运行时生成的注释字符串包含很少的名称。

现在,我必须将完整注释字符串中的这些名称设为可点击。如何将Name与完整字符串分开,以在名称上添加单击侦听器。

请建议。

1 个答案:

答案 0 :(得分:0)

您可以使用SpannableString和ClickableSpan实现此目的。

为此你需要你想要点击的子串的索引(遗憾的是我还没有想出如何使索引正确的有效方法)。您甚至可以将多个clickableSpans设置为一个String。

尝试这样的事情:

SpannableString text;
ClickableSpan clickMe;

    public void onCreate(...){
       text = new SpannableString(yourText);
       clickMe = new ClickableSpan(){
           @Override
           public void onClick(View textView){
              // Your ClickEvent
           }
       };
       text.setSpan(clickMe, startIndexOfSubstring, EndIndexOfSubstring, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

然后,您只需将该文本应用于ListView中的TextView或Item,它就是可点击的。 我很遗憾没有在ListViews中使用此方法的经验,但在TextViews中,这对我来说很好。你也必须设置它:

yourTextView.setMovementMethod(LinkMovementMethod.getInstance());

希望这能以某种方式帮助你!