举例:TextView中存在“斯蒂芬斯蒂芬斯蒂芬1L斯蒂芬斯蒂芬斯蒂芬”这样的字段,我需要可以点击“1L”触发事件,做法如下:

TextView textView = (TextView) findViewById(R.id.cao2);
String str = "斯蒂芬斯蒂芬斯蒂芬1L斯蒂芬斯蒂芬斯蒂芬";
SpannableStringBuilder cao2 = new SpannableStringBuilder(str);
Pattern pattern2 = Pattern.compile("1L");
Matcher matcher2 = pattern2.matcher(str);
while(matcher2.find()) {
final String group = matcher2.group();
ClickableSpan what = new ClickableSpan() {

@Override
public void onClick(View widget) {
new AlertDialog.Builder(Spannable.this).setMessage(group).setPositiveButton("ok", null).show();

}
};
cao2.setSpan(what, matcher2.start(), matcher2.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(cao2);
textView.setMovementMethod(LinkMovementMethod.getInstance());

原文:http://blog.sina.com.cn/s/blog_600ff0750101427f.html

更多相关文章

  1. 一篇搞定Android(安卓)Sqlite
  2. 用Preferences,通过xml文件跳转到另一个Activity
  3. Android(安卓)后台静默安装
  4. [置顶] 我的Android进阶之旅------>Android的ListView数据更新后
  5. 查询备份Android(安卓)PDU彩信
  6. Android日历操作
  7. 2014.08.05 ——— android Gson JsonDeserializer
  8. android通讯录数据库表解析和添加,访问通讯录
  9. Android的Master/Detail风格界面中实现自定义ListView的单选

随机推荐

  1. Android(安卓)SQLite Database
  2. Android(安卓)DOC翻译—Processes and Th
  3. adb tools
  4. android.graphics.Paint类详解
  5. Android开源项目分类汇总
  6. Java中HashMap如何工作的?
  7. android 管理wifi
  8. Google cardBoard Android(安卓)API (六)
  9. Google cardBoard Android(安卓)API (二)
  10. android自动登陆SharedPreferences