0

我的代码看起来像这样,

String content = "Hi this is @Naveen. I'll meet @Peter in the evening.. Would you like to join @Sam??";

TextView contentTextView=(TextView)userHeader.findViewById(R.id.contentTextView);
contentTextView.setText(content);

在文本视图中设置文本之前,我想为@Naveen、@Peter 和@Sam 添加点击事件。当用户点击这些文本时,我想打开一个新的意图。这可能吗?任何指针都会很有帮助。

4

2 回答 2

4

您可以尝试将Linkify与自定义模式一起使用。

但是,如果这不适合您的需求,您可以尝试以下操作:

SpannableString ss = new SpannableString("Hi this is @Naveen. I'll meet @Peter in the evening.. Would you like to join @Sam??");
ClickableSpan clickableSpanNaveen = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        //Do Stuff for naveen
    }
};
ClickableSpan clickableSpanPeter = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        //Do Stuff for peter
    }
};
ClickableSpan clickableSpanSam = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        //Do Stuff for sam
    }
};

ss.setSpan(clickableSpanNaveen, 11, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(clickableSpanPeter, 29, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(clickableSpanSam, 76, 79, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView contentTextView=(TextView)userHeader.findViewById(R.id.contentTextView);
contentTextView.setText(ss);
contentTextView.setMovementMethod(LinkMovementMethod.getInstance());
于 2013-03-05T12:11:52.753 回答
3

您可以使用Linkify该类,它提供了将链接添加到TextViews. 您可以使用该addLinks(TextView textView, Pattern pattern, String scheme)方法,该方法需要您指定要匹配的文本的TextViewa和将用于匹配的自定义方案,该方案可以与此类数据一起使用。单击链接时要打开的 必须在其. 希望这可以帮助。PatternActivitiesActivityintent-filter

于 2013-03-05T12:07:21.683 回答