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

 

Android 在TextView中加入多个点击文本区域_第1张图片

很多人会做多个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使用MediaRecorder实现录音功能相关知识
  3. [置顶] Android 实现对话框圆角功能
  4. Android调用系统关机与重启功能
  5. android中的分享功能
  6. android集成语音功能
  7. android 如何调用系统拨打电话的功能
  8. 基于Android的谷歌地图地理围栏功能开发

随机推荐

  1. android 开发 onRestart()未调用
  2. 屏幕旋转Activity的生命周期变化
  3. 如何构建背景渐变的页面
  4. android 设置闹钟显示的状态栏上
  5. Android系统源码导入到eclipse
  6. Android中传感器的一些功能
  7. 安装APK文件的错误码定义
  8. android HTTPS 访问 安全认证
  9. android如何在代码中设置margin
  10. 浅谈Android(安卓)Broadcast