按这一篇(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`是用于展示文本的常用组件,但有时我们希望部分文本具有不同的样式,比如颜色不同,甚至能响应用户的点击事件,跳转到特定的链接。这通常涉及到`SpannableString`、`ClickableSpan`等...
有时候我们需要为TextView添加点击事件,以便当用户点击该文本时,能够触发特定的操作,如跳转到其他页面、拨打电话或者显示弹窗等。以下是如何在Android中为TextView添加点击事件的详细步骤: 1. **设置TextView的...
本教程将详细介绍如何将这两个控件结合使用,实现点击按钮后在`TextView`中显示点击次数的功能。 首先,我们需要在布局文件(如`activity_test.xml`)中添加`TextView`和`Button`。在`<LinearLayout>`或`...
在Android应用开发中,...通过深入学习和分析这份源码,你不仅可以了解Activity的跳转与操作,还能掌握Android开发的诸多核心概念,为自己的毕业设计打下坚实基础。这份资源对于理论学习与实战演练都是极好的补充。
在许多应用中,我们可能需要将TextView中的部分文字设置为超链接,以便用户点击后可以跳转到其他Activity或网页。本教程将详细介绍如何实现一个没有下划线且可以自定义颜色的TextView超链接,并通过Intent启动新的...
当用户点击TextView中的超链接时,我们希望能够像WebView那样跳转到对应的网页。这个功能实现起来并不复杂,主要涉及到了TextView的`movementMethod`属性和`Linkify`类的使用。 首先,让我们了解`movementMethod`...
Activity是Android系统中的一个组件,它负责与用户交互,展示UI并处理用户事件。每个Activity都有一个生命周期,包括创建、启动、暂停、恢复和销毁等状态。理解Activity的生命周期对于管理和优化应用性能至关重要。 ...
在Android开发中,我们经常需要实现点击文字后跳转到另一个Activity或执行特定操作,这可以通过设置文字超链接来实现。这个过程涉及到Android的UI组件、事件处理以及文本格式化技术。在这里,我们将深入探讨如何使用...
为了使Activity响应用户的操作,例如点击按钮,可以使用findViewById()找到相应的View对象,然后设置OnClickListener。例如: ```java Button myButton = findViewById(R.id.my_button); myButton....
`setMovementMethod(LinkMovementMethod.getInstance())`是必须调用的,因为它使得TextView可以响应点击事件。 此外,还可以使用`Linkify`类或者`Html.fromHtml()`方法来自动化创建链接,例如: ```java String ...
在Android应用程序中,经常需要从一个Activity跳转到另一个Activity来完成不同的任务或展示不同的内容。 1. **Intent**: - Intent是Android中用于启动Activity、Service或者发送广播的主要工具。 - 可以通过显式...
除了UI控件中的事件外,Android还支持对设备本身的事件进行响应,例如传感器数据的变化、网络连接状态的变化等。这些事件通常通过注册监听器或者使用系统服务的方式进行处理。 #### 四、屏幕间的跳转和事件的传递 ...
2. **用户输入验证**:在登录按钮的点击事件处理中,开发者需要获取`EditText`中的文本内容并进行验证。这包括检查输入是否为空,格式是否正确(如邮箱或电话号码验证),以及密码强度等。 3. **数据持久化**:为了...
例如,打开一个新闻应用,你可能首先看到一个列表页(Activity),点击某条新闻后跳转到另一个详情页(Activity)。每个Activity都可以包含各种UI组件,如按钮(Button)、复选框(Checkbox)等。 2. **生命周期管理**: ...
本示例“RecyclerView Item点击事件demo”旨在教你如何为RecyclerView的每个项目(Item)添加点击事件,以便当用户点击列表中的某个条目时,可以执行相应的操作,如跳转到新的详情页面或执行其他功能。 首先,让...
例如,按钮1点击时显示一个Toast,按钮2点击时跳转到另一个Activity。 ```java button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, ...
- 在模拟器或真机上运行程序,输入数据后点击跳转按钮,观察第二个Activity是否正确显示了传入的数据。 #### 实验总结 通过本次实验的学习,我们可以总结出以下几点: 1. **组件关联:** 通过`findViewById()`...
开发者通常会在这个回调中执行相应的操作,比如跳转到新的Activity或者显示更多详情。 然而,ListView的点击事件有时会出现模糊问题,即用户可能意外触发了错误的点击事件,这通常是由于点击事件和触摸事件的交互...
其次,**Widget点击跳转到Activity**。当用户点击Widget时,我们希望它能启动一个相关的Activity,可能是主应用程序界面或者特定功能页面。这可以通过在Widget的配置类中设置PendingIntent实现。PendingIntent是一个...