TextView高级应用之:实现部分文字点击事件

有时候我们在应用中要实现一个看简单的功能,比如在TextView上显示了一些文字,要求文字的部分内容颜色与其它文字不同,而且竞价文字点击功能。实现也比较简单:

public class TestActivity extends Activity {

private TextView tv;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_my_test);

tv = (TextView) findViewById(R.id.text);

tv.setMovementMethod(LinkMovementMethod.getInstance());

tv.setText("实现点击第2到第6个字");

CharSequence text = tv.getText();

if (text instanceof Spannable) {

SpannableStringBuilder style = new SpannableStringBuilder(text);

// style.setSpan(new ForegroundColorSpan(Color.RED),2,6,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//实现部分文字颜色改变

style.setSpan(new TestSpanClick(this), 2, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//当然这个2和6不用写死,根据实际需要来取值

tv.setText(style);

tv.setText(style);

}

}

private static class TestSpanClick extends ClickableSpan {

private Context mContext;

public TestSpanClick(Context mContext) {

this.mContext = mContext;

}

@Override

public void onClick(View widget) {

// TODO Auto-generated method stub

Toast.makeText(mContext, "实现部分文字点击事件", Toast.LENGTH_SHORT).show();

}

}

}

SpannableStringBuilder 是一个什么样的类呢?个人觉得有一篇文章讲得很详细,我就不,文章地址:http://blog.csdn.net/lovexjyong/article/details/17021235。ClickableSpan的用法也可以参考:http://blog.csdn.net/janronehoo/article/details/7238337

时间: 2024-09-29 02:02:11

TextView高级应用之:实现部分文字点击事件的相关文章

TextView高级应用之:TextView显示Html格式内容及图片

TextView是我们开发中最最常用到的组件之一,最常用的功能主要是用来进行文字展示.可以设置文字的大小,颜色等效果等.如果觉得TextView的功能仅仅是用来显示文字的话,那就大错特错啦,更多的用处如展示图片,实现部分文字点击事件,实现诸如网址,手机号带链接等都能在TextView中一一实现.强大吧! 在项目中就经常用到TextView来显示Html格式的文字,今天就简单地贴一下.做个笔记. -------------------------简单的布局main_test_html.xml,就一

Android TextView部分文字实现点击事件

This is the class for text whose content and markup can both be changed. (这是一个内容和标记都可以更改的文本类) 快速实现 直接看代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextV

Android开发之TextView高级应用

我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.下面就和大家分享一下TextView的一些使用技巧. Android中设置文本样式的几种方法: 1.将android:autoLink属性值设为true.系统会自动识别E-mail.电话.网址等特殊文本. 2.使用Html标签,例如,<font>.<img>等.不要设置 android:autoLink 属性. 3.在Java代码中直接使用Span对象来设置文本样式.这种方法需要将文本

TextView 高级教程

前言 光看题目,估计有人已经忍不住吐槽了:尼玛,TextView 这么简单的控件,还有什么高级用法吗?放在以前,我也会这么想,但是随着开发经验的积累,我愈发觉得 TextView 简直就是一座宝藏,里面有很多宝贝值得研究. 本文基于 @Chiuki 的讲座,并结合我自己的经验整理而成. 视频地址:Youtube 讲稿地址:Github 部分 demo 对应的代码地址:Github 文章中的大部分图片和代码均摘自讲稿,感谢原作者的分享. Compound Drawable 如下图1中的效果,我们可

TextView 设置部分文字颜色及点击事件SpannableString

设置TextView中一部分文字的颜色及点击事件. SpannableString gotoMsgListStr = new SpannableString("消息列表"); gotoMsgListStr.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { startActivity(new Intent(OrderPayStatusActivity.this, MsgListActivi

TextView,EditText中添加不同颜色的文字

在很多时候,在我们项目里需要用到在一个TextView中要显示不同颜色的文字 private Spanned colorText(String text) { return Html.fromHtml(String.format("<font color='#ff989e'>%1$s</font>", text));}//设置文字textView.setText("01234")textView.append(colorText("

Android实现TextView中部分文字监听事件

通常我们只需要用TextView来显示文本信息,展示给用户看,而把点击相应的监听事件交给Button等控件来处理,当然TextView也可以实现点击事件.有时候我们要对TextView中的部分文字进行点击,我们应该如何操作呢?一般有以下三种方式: 1,在布局文件中设置TextView的android:autoLink属性,比如设置android:autoLink="phone",则可以点击手机号码直接拨打电话.android:autoLink设置是否当文本为URL链接/email/电话

TextView下划线,部分文字并响应点击事件(SpannableString)

TextView useInfo = (TextView) findViewById(R.id.info); useInfo.setText("开始即表示您同意遵守"); String url_0_text = "用户协议及隐私条款"; SpannableString spStr = new SpannableString(url_0_text); spStr.setSpan(new ClickableSpan() { @Override public void u

Android TextView内容过长加省略号,点击显示全部内容

在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中: android:ellipsize="end"   省略号在结尾 android:ellipsize="start" 省略号在开头 android:ellipsize="middle"   省略号在中间 android:ellipsize="marquee"  跑马灯 最好加一个TextView显示行数的约束,例如: