我的代码看起来像这样,
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);
在textview中设置文本之前,我想为@Naveen,@ Peter和@Sam添加click事件。当用户点击这些文本时,我想打开一个新意图..这可能吗?任何指针都会非常有用。
答案 0 :(得分: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());
答案 1 :(得分:3)
您可以使用Linkify
类,该类提供了添加TextViews
链接的方法。您可以使用addLinks(TextView textView, Pattern pattern, String scheme)
方法,该方法需要您为要匹配的文本指定TextView
,Pattern
以及将用于匹配{{1}的自定义方案可以使用这种数据。单击链接时要打开的Activities
必须在Activity
中声明此方案。希望这会有所帮助。