按这一篇(http://www.linuxidc.com/Linux/2011-10/45649.htm)的方式可以给 TextView 加上事件响应,然而仅限于 web、email、phone、map等几种,如果希望在点击后跳转到自己的 Activity 要怎么实现呢?看代码吧!
这是 Activity 代码:
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- linkify = new LinkifyUtil(this);
- Intent intent = new Intent("com.example.Android.note.ADD");
- intent.setData(Uri.parse("content://com.example.android.note/item"));
- linkify.addIntentLink(intent, (TextView) findViewById(R.id.tv_new_item));
- }
这是 LinkifyUtil 类:
- package com.example.android.note.util;
- import android.app.Activity;
- import android.content.Intent;
- import android.text.SpannableString;
- import android.text.Spanned;
- import android.text.method.LinkMovementMethod;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.TextView;
- /**
- *
- * @author eidolon
- */
- public class LinkifyUtil {
- private final Activity currentActivity;
- public LinkifyUtil(Activity activity) {
- this.currentActivity = activity;
- }
- public void addIntentLink(final Intent intent, final TextView view, final int start, final int end) {
- CharSequence source = view.getText();
- if (source instanceof Spanned) {
- IntentSpan[] spans = ((Spanned) source).getSpans(start, end, IntentSpan.class);
- if (spans.length > 0) {
- return;
- }
- }
- SpannableString spannableString = new SpannableString(source);
- spannableString.setSpan(new IntentSpan(new OnClickListener() {
- public void onClick(View view) {
- currentActivity.startActivity(intent);
- }
- }), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- view.setText(spannableString);
- view.setMovementMethod(LinkMovementMethod.getInstance());
- }
- public void addIntentLink(final Intent intent, final TextView view) {
- addIntentLink(intent, view, 0, view.getText().toString().length());
- }
- }
最后是 IntentSpan 类:
- package com.example.android.note.util;
- import android.text.style.ClickableSpan;
- import android.view.View;
- import android.view.View.OnClickListener;
- /**
- *
- * @author eidolon
- */
- public class IntentSpan extends ClickableSpan {
- private final OnClickListener listener;
- public IntentSpan(View.OnClickListener listener) {
- this.listener = listener;
- }
- @Override
- public void onClick(View view) {
- listener.onClick(view);
- }
- }
相关推荐
android textview 部分文本变色,点击可跳转到指定的链接
安卓中的TextView 实现部分文字点击事件,通过Spannable 实现
主要为大家详细介绍了Android中TextView实现部分文字可点击跳转的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
TextView中文字超链接,点击启动另一个Activity 源码
Android自定义TextView链接点击和长按事件
EditText和Textview的部分文字响应
Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...
同一个TextView不同文字的点击事件,点击不同的文字做不同的处理
Android 文本类中字体颜色的改变,并可以相应点击事件
WebView跳转TextView中的超链接,支持多行链接,可以实现一行文本显示多个链接
在web页面中,有a标签的超链接实现跳转,同样在Android当中,用TextView控件来显示文字,实现它的事件来跳转。 用过微博Android手机端的朋友的都知道微博正文有时有一些高亮显示的文本,如话题、提到的人等等,当...
TextView文字多种颜色,多种字号,不同颜色点击响应不同事件
源码 博文链接:https://zhangning290.iteye.com/blog/1134286
android textview 指定片段添加点击事件 关注博客 http://himici.com
实现TextView的点击效果,获得更好的用户 体验
Android 点击TextView 改变背景色
仿微博获取到TextView中的url地址并且用“网址链接”替换,点击跳转
TextViewSpanLink 支持TextView上超链接可以点击,获取网址并跳转,支持特定文字的着色和处理,并且可以点击。 本代码直供学习使用;
TextView点击显示更多