项目中遇到这样一个需求,很简单,就是让TextView中的部分文字实现可以点击跳转的逻辑,大概是这样:

这种需求很简单,脑海里却突然没有了思路,简单Google一下就搜索到了,原来Android的TextView中早已为开发人员提供好了这样的API:

SpannableStringBuilder.class

This is the class for text whose content and markup can both be changed. 
(这是一个内容和标记都可以更改的文本类)

快速实现
直接看代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = findViewById(R.id.tvContent);

        final SpannableStringBuilder style = new SpannableStringBuilder();

        //设置文字
        style.append("关于本活动更多规则,请点我查看");

        //设置部分文字点击事件
        ClickableSpan clickableSpan = new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                Toast.makeText(MainActivity.this, "触发点击事件!", Toast.LENGTH_SHORT).show();
            }
        };
        style.setSpan(clickableSpan, 11, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv.setText(style);

        //设置部分文字颜色
        ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.parseColor("#0000FF"));
        style.setSpan(foregroundColorSpan, 11, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        //配置给TextView
        tv.setMovementMethod(LinkMovementMethod.getInstance());
        tv.setText(style);
    }

}

更多相关文章

  1. Android自屏幕底部滑出更多面板的实现
  2. Android回音噪音处理Demo
  3. 关于 android:windowSoftInputMode 的设置
  4. Android(安卓)Manager之MediaRecorder(音视频录制)
  5. Android(安卓)中NavigationView的使用
  6. Android:防止过快点击造成多次事件
  7. Android(安卓)PopupWindow 使点击区域外不消失
  8. Gradle设置代码混淆
  9. 设置android软键盘,默认不弹出的方法

随机推荐

  1. Android(安卓)Studio 3.0新建项目AAPT2
  2. ImageSpan的使用
  3. Android(安卓)HttpClient
  4. android 获取 图片 缩略图
  5. Android(安卓)Studio 安卓模拟器安装本地
  6. Android(安卓)gallery实现二级联动效果
  7. Android之Hello WebView
  8. Android(安卓)VelocityTracker
  9. Linux(ubuntu 11.04)环境下Android开发环境
  10. 获取Android(安卓)IP信息