Android做注册功能或者其他功能时,一般会需要在一个TextView中,加入多个可以点击的区域,例如下图中的《用户协议》和《隐私政策》,需要有点击事件:

 

很多人会做多个Textview拼接起来,这样其实很麻烦,其实使用一个Android 自带的功能就可以做了。如下:

//  一个图标,即在文本最前面加一个图标//        ImageSpan span = new ImageSpan(mContext, null);//        SpannableString spanStr = new SpannableString("p.");//        spanStr.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//        SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr);String str = "注册即代表已阅读并遵循《用户协议》和《隐私政策》";        SpannableStringBuilder ssb = new SpannableStringBuilder();        ssb.append(str);        final int start = str.indexOf("《");//第一个出现的位置        ssb.setSpan(new ClickableSpan() {            @Override            public void onClick(View widget) {                Toast.makeText(mContext, "《用户协议》",                        Toast.LENGTH_SHORT).show();            }            @Override            public void updateDrawState(TextPaint ds) {                super.updateDrawState(ds);                ds.setColor(getResources().getColor(R.color.text_click_blue));       //设置文件颜色                // 去掉下划线                ds.setUnderlineText(false);            }        }, start, start + 6, 0);        final int end = str.lastIndexOf("《");//最后一个出现的位置        ssb.setSpan(new ClickableSpan() {            @Override            public void onClick(View widget) {                Toast.makeText(mContext, "《隐私政策》",                        Toast.LENGTH_SHORT).show();            }            @Override            public void updateDrawState(TextPaint ds) {                super.updateDrawState(ds);                ds.setColor(getResources().getColor(R.color.text_click_blue));       //设置文件颜色                // 去掉下划线                ds.setUnderlineText(false);            }        }, end, end + 6, 0);  textview.setMovementMethod(LinkMovementMethod.getInstance()); textview.setText(ssb, TextView.BufferType.SPANNABLE);

就能实现上图中的功能。

 

更多相关文章

  1. Android实现语音识别
  2. android开发笔记之2012版辅助开发工具包(ADT)新功能特性介绍及安装
  3. 2012版辅助开发工具包(ADT)新功能特性介绍及安装使用
  4. OpenCore 的代码结构
  5. Android使用MediaRecorder实现录音功能相关知识
  6. android 自动登录功能的实现
  7. Android(安卓)系统下模拟触点击的功能与权限
  8. 基于Android的WiFi对讲机项目简介
  9. [置顶] Android(安卓)实现对话框圆角功能

随机推荐

  1. Android获取手机和系统版本等信息的代码
  2. android Retrofit+OKhttp实现接口调用
  3. MediaRouter的使用
  4. 成佩涛编程之路——android之jquery使用(
  5. android keystore文件转换格式为pk8和x50
  6. 【Android】Retrofit 的一些笔记
  7. Android(安卓)开发中uboot传给Kernel 的a
  8. 使用fiddler抓包手机请求数据
  9. Android实现侧滑菜单
  10. Android(安卓)targetSdkVersion 从22提到