为TextView中的字符串“dai ha ha dai lingdaidaing“中的dai单词设置单击事件
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.tv);
String str = "dai ha ha dai lingdaidaing";
SpannableStringBuilder ssb = new SpannableStringBuilder(str);
Pattern pattern = Pattern.compile("dai");
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
String group = matcher.group();
ClickableSpan cs = new MyClickableSpan(group);
ssb.setSpan(cs, matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(ssb);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
class MyClickableSpan extends ClickableSpan{
private String group;
public MyClickableSpan(){}
public MyClickableSpan(String group){
this.group = group;
}
@Override
public void onClick(View widget) {
Toast.makeText(getApplicationContext(), group, 0).show();
}
}
}