Android(安卓)- TextView 实现部分文本点击事件
16lz
2021-01-26
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
更多相关文章
- 文本中的值的保存与恢复
- 在CentOS下搭建Android(安卓)开发环境
- ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法
- 【安卓开发学习】6.ListView点击事…
- drawSelectorOnTop的作用
- Recyclerview 点击效果,可以使用
- android事件之onInterceptTouchEvent,dispatchTouchEvent,onTouc
- Android(安卓)文本输入框 获取焦点和设置光标到末尾
- Android(安卓)两层嵌套tab,Spinner点击出错解决办法