1.描述

   一个TextView ,显示的文本 ,有部分文字被点击后响应事件 ,通过SpannableStringBuilder 实现 。


   效果演示 :

                                                


2.实现步骤

  (1)布局实现 

    

  (2)代码实现

           注意事项 : 1) 继承 ClickableSpan 实现 View.OnClickListener 接口

                               2) tv.setMovementMethod(LinkMovementMethod.getInstance()); 必须实现,否则没效果

package cn.labelnet.mytestandrid;import android.app.Activity;import android.graphics.Color;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableStringBuilder;import android.text.method.LinkMovementMethod;import android.text.style.ClickableSpan;import android.text.style.ForegroundColorSpan;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private TextView tv;private final String TEXT_STRING = "我是百度,我怕谁!?";private final String TEXT_KEY = "百度";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);int startIndex = TEXT_STRING.indexOf(TEXT_KEY);int endIndex = startIndex + TEXT_KEY.length();SpannableStringBuilder builder = new SpannableStringBuilder(TEXT_STRING);//    可单独文本前景色 //builder.setSpan(new ForegroundColorSpan(Color.RED), startIndex,//endIndex, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//设置文本点击事件builder.setSpan(new ClickSpannable(this), startIndex, endIndex,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);tv = (TextView) findViewById(R.id.tv);tv.setMovementMethod(LinkMovementMethod.getInstance());tv.setText(builder);}@Overridepublic void onClick(View v) {Toast.makeText(getApplicationContext(), "我被点击了", Toast.LENGTH_SHORT).show();}/** * SpannableStringBuilder 点击事件 */private class ClickSpannable extends ClickableSpan implementsOnClickListener {private View.OnClickListener onClickListener;public ClickSpannable(View.OnClickListener onClickListener) {this.onClickListener = onClickListener;}@Overridepublic void onClick(View widget) {onClickListener.onClick(widget);}}}

3.其它例子

  Android 为 TextView实现多个可点击文本
  Android TextView 点击文本链接事件实现

4.Demo 免积分下载

http://download.csdn.net/detail/lablenet/9334231



    

   

更多相关文章

  1. 文本中的值的保存与恢复
  2. 在CentOS下搭建Android(安卓)开发环境
  3. ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法
  4. 【安卓开发学习】6.ListView点击事…
  5. drawSelectorOnTop的作用
  6. Recyclerview 点击效果,可以使用
  7. android事件之onInterceptTouchEvent,dispatchTouchEvent,onTouc
  8. Android(安卓)文本输入框 获取焦点和设置光标到末尾
  9. Android(安卓)两层嵌套tab,Spinner点击出错解决办法

随机推荐

  1. Android音乐播放器-图片素材准备及布局
  2. android中下拉框控件——Spinner
  3. Android_开发片段(Part 3)
  4. 高通平台(8917/8937/8953...) secure boot
  5. Android之Service 的生命周期
  6. Android(安卓)网络下载文件 图片 httpurl
  7. ionic3打包安卓apk
  8. Android(安卓)TV的音量键实现流程
  9. Android(安卓)之 ViewDragHelper详解(二)
  10. Android(安卓)开发(三)使用Stirngs资源文件