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() {