`

TextView 加上事件响应,点击后跳转到自己的 Activity

 
阅读更多

按这一篇(http://www.linuxidc.com/Linux/2011-10/45649.htm)的方式可以给 TextView 加上事件响应,然而仅限于 web、email、phone、map等几种,如果希望在点击后跳转到自己的 Activity 要怎么实现呢?看代码吧!

这是 Activity 代码:

  1. @Override  
  2. public void onCreate(Bundle icicle) {   
  3.     super.onCreate(icicle);   
  4.   
  5.     linkify = new LinkifyUtil(this);   
  6.     Intent intent = new Intent("com.example.Android.note.ADD");   
  7.     intent.setData(Uri.parse("content://com.example.android.note/item"));   
  8.        
  9.     linkify.addIntentLink(intent, (TextView) findViewById(R.id.tv_new_item));   
  10. }  

这是 LinkifyUtil 类:

  1. package com.example.android.note.util;   
  2.   
  3. import android.app.Activity;   
  4. import android.content.Intent;   
  5. import android.text.SpannableString;   
  6. import android.text.Spanned;   
  7. import android.text.method.LinkMovementMethod;   
  8. import android.view.View;   
  9. import android.view.View.OnClickListener;   
  10. import android.widget.TextView;   
  11.   
  12. /**  
  13.  *  
  14.  * @author eidolon  
  15.  */  
  16. public class LinkifyUtil {   
  17.     private final Activity currentActivity;   
  18.   
  19.     public LinkifyUtil(Activity activity) {   
  20.         this.currentActivity = activity;   
  21.     }   
  22.   
  23.     public void addIntentLink(final Intent intent, final TextView view, final int start, final int end) {   
  24.         CharSequence source = view.getText();   
  25.         if (source instanceof Spanned) {   
  26.             IntentSpan[] spans = ((Spanned) source).getSpans(start, end, IntentSpan.class);   
  27.             if (spans.length > 0) {   
  28.                 return;   
  29.             }   
  30.         }   
  31.            
  32.         SpannableString spannableString = new SpannableString(source);   
  33.         spannableString.setSpan(new IntentSpan(new OnClickListener() {   
  34.   
  35.             public void onClick(View view) {   
  36.                 currentActivity.startActivity(intent);   
  37.             }   
  38.         }), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   
  39.            
  40.         view.setText(spannableString);   
  41.         view.setMovementMethod(LinkMovementMethod.getInstance());   
  42.     }   
  43.   
  44.     public void addIntentLink(final Intent intent, final TextView view) {   
  45.         addIntentLink(intent, view, 0, view.getText().toString().length());   
  46.     }   
  47. }  

最后是 IntentSpan 类:

  1. package com.example.android.note.util;   
  2.   
  3. import android.text.style.ClickableSpan;   
  4. import android.view.View;   
  5. import android.view.View.OnClickListener;   
  6.   
  7. /**  
  8.  *  
  9.  * @author eidolon  
  10.  */  
  11. public class IntentSpan extends ClickableSpan {   
  12.   
  13.     private final OnClickListener listener;   
  14.   
  15.     public IntentSpan(View.OnClickListener listener) {   
  16.         this.listener = listener;   
  17.     }   
  18.   
  19.     @Override  
  20.     public void onClick(View view) {   
  21.         listener.onClick(view);   
  22.     }   
  23. }  
分享到:
评论

相关推荐

    android textview 部分文本变色,点击跳转

    在Android开发中,`TextView`是用于展示文本的常用组件,但有时我们希望部分文本具有不同的样式,比如颜色不同,甚至能响应用户的点击事件,跳转到特定的链接。这通常涉及到`SpannableString`、`ClickableSpan`等...

    Android给TextView添加点击事件的实现方法

    有时候我们需要为TextView添加点击事件,以便当用户点击该文本时,能够触发特定的操作,如跳转到其他页面、拨打电话或者显示弹窗等。以下是如何在Android中为TextView添加点击事件的详细步骤: 1. **设置TextView的...

    TextView和Button的结合使用:点击按钮,返回点击次数

    本教程将详细介绍如何将这两个控件结合使用,实现点击按钮后在`TextView`中显示点击次数的功能。 首先,我们需要在布局文件(如`activity_test.xml`)中添加`TextView`和`Button`。在`<LinearLayout>`或`...

    Android应用源码之(Activity跳转与操作)-IT计算机-毕业设计.zip

    在Android应用开发中,...通过深入学习和分析这份源码,你不仅可以了解Activity的跳转与操作,还能掌握Android开发的诸多核心概念,为自己的毕业设计打下坚实基础。这份资源对于理论学习与实战演练都是极好的补充。

    TextView超链接启动Activity,无下划线,可自定义颜色

    在许多应用中,我们可能需要将TextView中的部分文字设置为超链接,以便用户点击后可以跳转到其他Activity或网页。本教程将详细介绍如何实现一个没有下划线且可以自定义颜色的TextView超链接,并通过Intent启动新的...

    WebView跳转TextView中的超链接

    当用户点击TextView中的超链接时,我们希望能够像WebView那样跳转到对应的网页。这个功能实现起来并不复杂,主要涉及到了TextView的`movementMethod`属性和`Linkify`类的使用。 首先,让我们了解`movementMethod`...

    035_android_Activity入门和跳转

    Activity是Android系统中的一个组件,它负责与用户交互,展示UI并处理用户事件。每个Activity都有一个生命周期,包括创建、启动、暂停、恢复和销毁等状态。理解Activity的生命周期对于管理和优化应用性能至关重要。 ...

    android通过设置文字超链接启动activity

    在Android开发中,我们经常需要实现点击文字后跳转到另一个Activity或执行特定操作,这可以通过设置文字超链接来实现。这个过程涉及到Android的UI组件、事件处理以及文本格式化技术。在这里,我们将深入探讨如何使用...

    Android应用程序四大组件之Activity入门(Demo)

    为了使Activity响应用户的操作,例如点击按钮,可以使用findViewById()找到相应的View对象,然后设置OnClickListener。例如: ```java Button myButton = findViewById(R.id.my_button); myButton....

    Android中为TextView添加超链接的代码清单.pdf

    `setMovementMethod(LinkMovementMethod.getInstance())`是必须调用的,因为它使得TextView可以响应点击事件。 此外,还可以使用`Linkify`类或者`Html.fromHtml()`方法来自动化创建链接,例如: ```java String ...

    02_基本UI的控制和响应

    在Android应用程序中,经常需要从一个Activity跳转到另一个Activity来完成不同的任务或展示不同的内容。 1. **Intent**: - Intent是Android中用于启动Activity、Service或者发送广播的主要工具。 - 可以通过显式...

    android基本UI的控制和响应

    除了UI控件中的事件外,Android还支持对设备本身的事件进行响应,例如传感器数据的变化、网络连接状态的变化等。这些事件通常通过注册监听器或者使用系统服务的方式进行处理。 #### 四、屏幕间的跳转和事件的传递 ...

    andorid登录页面跳转所有控件 demo

    2. **用户输入验证**:在登录按钮的点击事件处理中,开发者需要获取`EditText`中的文本内容并进行验证。这包括检查输入是否为空,格式是否正确(如邮箱或电话号码验证),以及密码强度等。 3. **数据持久化**:为了...

    Android系统package与activity

    例如,打开一个新闻应用,你可能首先看到一个列表页(Activity),点击某条新闻后跳转到另一个详情页(Activity)。每个Activity都可以包含各种UI组件,如按钮(Button)、复选框(Checkbox)等。 2. **生命周期管理**: ...

    RecyclerView Item点击事件demo

    本示例“RecyclerView Item点击事件demo”旨在教你如何为RecyclerView的每个项目(Item)添加点击事件,以便当用户点击列表中的某个条目时,可以执行相应的操作,如跳转到新的详情页面或执行其他功能。 首先,让...

    listview两个点击时间的处理demo

    例如,按钮1点击时显示一个Toast,按钮2点击时跳转到另一个Activity。 ```java button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, ...

    Android系统应用开发 开发环境和Android程序结构 实验报告 附代码

    - 在模拟器或真机上运行程序,输入数据后点击跳转按钮,观察第二个Activity是否正确显示了传入的数据。 #### 实验总结 通过本次实验的学习,我们可以总结出以下几点: 1. **组件关联:** 通过`findViewById()`...

    Android下Listview的onItemClick以及onItemLongClick等易模糊问题验证

    开发者通常会在这个回调中执行相应的操作,比如跳转到新的Activity或者显示更多详情。 然而,ListView的点击事件有时会出现模糊问题,即用户可能意外触发了错误的点击事件,这通常是由于点击事件和触摸事件的交互...

    android app widget demo

    其次,**Widget点击跳转到Activity**。当用户点击Widget时,我们希望它能启动一个相关的Activity,可能是主应用程序界面或者特定功能页面。这可以通过在Widget的配置类中设置PendingIntent实现。PendingIntent是一个...

Global site tag (gtag.js) - Google Analytics