首页 > 代码库 > 设置TextView下划线并响应点击事件(SpannableString)
设置TextView下划线并响应点击事件(SpannableString)
写Demo程序的时候能表带自定义的数据结构对象吗?
--低级程序猿
前情提要:网上介绍TextView+SpannableString的文章真心太长,真心看不懂。
====原文=====
下面是一个20行的完整Demo代码:基本原理是使用一个SpannableString并设置其ClickableSpan来响应点击事件。
TextView useInfo = (TextView) findViewById(R.id.info);
String url_0_text = "用户协议及隐私条款";
useInfo.setText("开始即表示您同意遵守");
SpannableString spStr = new SpannableString(url_0_text);
spStr.setSpan(new ClickableSpan() {
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.WHITE); //设置文件颜色
ds.setUnderlineText(true); //设置下划线
}
@Override
public void onClick(View widget) {
Log.d("", "onTextClick........");
}
}, 0, url_0_text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
useInfo.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明,否则会一直出现高亮
useInfo.append(spStr);
useInfo.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
Demo完成。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。