`
yangjayup
  • 浏览: 253443 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android 同一个TextView不同文字的点击事件

 
阅读更多
  1. 转自:http://blog.csdn.net/hap_gx/article/details/8781910
  2. package com.example.textviewclick;  
  3.   
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. import android.text.Html;  
  7. import android.text.Spannable;  
  8. import android.text.SpannableStringBuilder;  
  9. import android.text.TextPaint;  
  10. import android.text.method.LinkMovementMethod;  
  11. import android.text.style.ClickableSpan;  
  12. import android.text.style.URLSpan;  
  13. import android.view.View;  
  14. import android.widget.TextView;  
  15. import android.widget.Toast;  
  16.   
  17. public class MainActivity extends Activity {  
  18.     TextView mTextView2;       
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.textview);    
  23.           
  24.         mTextView2 = (TextView)findViewById(R.id.text2);    
  25.         /*********** 同一个TextView不同文字的点击事件*******/  
  26.         StringBuilder actionText = new StringBuilder();  
  27.         actionText  
  28.                 .append("<a style=\"text-decoration:none;\" href='username'>"  
  29.                         + "username:" + " </a>");  
  30.         actionText  
  31.                 .append("隐形人"  
  32.                         + "<a style=\"color:blue;text-decoration:none;\" href='singstar'> "  
  33.                         + " love" + "</a>");  
  34.             actionText.append(" : \"" + "孙燕姿" + "\"");  
  35.         mTextView2.setText(Html.fromHtml(actionText.toString()));  
  36.         mTextView2.setMovementMethod(LinkMovementMethod  
  37.                 .getInstance());  
  38.         CharSequence text = mTextView2.getText();  
  39.         int ends = text.length();  
  40.         Spannable spannable = (Spannable) mTextView2.getText();  
  41.         URLSpan[] urlspan = spannable.getSpans(0, ends, URLSpan.class);  
  42.         SpannableStringBuilder stylesBuilder = new SpannableStringBuilder(text);  
  43.         stylesBuilder.clearSpans(); // should clear old spans  
  44.         for (URLSpan url : urlspan) {  
  45.             TextViewURLSpan myURLSpan = new TextViewURLSpan(url.getURL());  
  46.             stylesBuilder.setSpan(myURLSpan, spannable.getSpanStart(url),  
  47.                     spannable.getSpanEnd(url), spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  48.         }  
  49.         mTextView2.setText(stylesBuilder);  
  50.     }  
  51.       
  52.     private class TextViewURLSpan extends ClickableSpan {  
  53.         private String clickString;  
  54.   
  55.         public TextViewURLSpan(String clickString) {  
  56.             this.clickString = clickString;  
  57.         }  
  58.   
  59.         @Override  
  60.         public void updateDrawState(TextPaint ds) {  
  61.             ds.setColor(MainActivity.this.getResources().getColor(R.color.text_color));  
  62.             ds.setUnderlineText(false); //去掉下划线  
  63.         }  
  64.           
  65.         @Override  
  66.         public void onClick(View widget) {  
  67.             if (clickString.equals("username")) {  
  68.                 Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)  
  69.                 .show();  
  70.             } else if (clickString.equals("singstar")) {  
  71.                 Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)  
  72.                         .show();  
  73.             }  
  74.         }  
  75.     }  
  76.   
  77. }  
分享到:
评论

相关推荐

    同一个TextView不同文字的点击事件 demo

    本教程将详细讲解如何实现“同一个TextView不同文字的点击事件”,以便于在单个`TextView`内实现多种交互功能。 首先,我们需要理解`SpannableString`和`ClickableSpan`这两个关键概念。`SpannableString`是`String...

    TextView部分文字点击事件

    以下是一个简单的示例,展示了如何创建一个TextView并实现部分文字的点击事件: ```java TextView textView = findViewById(R.id.textView); String text = "这是一个示例文本,点击这里"; String clickablePart = ...

    Android 多个TextView文字横向自动滚动(可点击)

    以下是对这个"Android 多个TextView文字横向自动滚动(可点击)"知识点的详细说明。 首先,我们要理解`TextView`是Android中用于显示单行或多行文本的视图组件。在实现自动滚动效果时,通常会用到`TextView`的`...

    Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_

    Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...

    TextView文字多种颜色,多种字号,不同颜色点击响应不同事件

    在Android开发中,`TextView` 是一个非常常用的控件,用于显示文本信息。在实际应用中,我们常常需要对`TextView`进行个性化设置,比如显示多种颜色、多种字号,甚至让不同颜色的文本具备不同的点击事件。这篇内容将...

    TextView中,设置指定部分文字改变颜色,和指定部分文字点击事件

    如果既要改变颜色又要添加点击事件,可以在同一个`SpannableStringBuilder`或`SpannableString`中同时应用`ForegroundColorSpan`和`ClickableSpan`。只需确保`setSpan()`方法的调用顺序正确,因为后一个span会覆盖...

    安卓textView相关-android文字图片混排在一个TextView中显示文字穿插图片文字变色效果.rar

    在实际项目中,你可能会遇到更复杂的情况,如动态加载图片、处理点击事件等。这时,你可能需要使用`SpannableStringBuilder`来动态修改已有的SpannableString,或者使用`DynamicDrawableSpan`来处理图片的大小和位置...

    Android 中实现对textView 显示部分文字,点击按钮后显示剩余文字以及再度隐藏文字

    在上述代码中,我们首先设置了TextView的初始显示文本,然后通过`setOnClickListener`为Button添加了一个点击监听器。在点击事件处理函数中,我们根据`isTextHidden`的值来切换TextView的显示状态,并更新Button的...

    Android通过textview设置状态

    开发者可能创建了一个简单的Activity,包含一个或多个TextView,并在用户点击时改变它们的状态。通过分析这个示例,你可以更深入地理解TextView与Selector的交互方式。 总之,通过使用Selector,我们可以轻松地为...

    Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段

    Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...

    Android TextView查看更多

    另外,为了使"点击查看更多"看起来更像一个按钮,我们还可以通过设置`android:textColor`、`android:background`等属性来改变其样式。例如,可以添加一个背景颜色,改变文字颜色,或者使用自定义的Drawable资源。 `...

    Android 可伸缩的TextView

    在这种场景下,“Android可伸缩的TextView”提供了一个解决方案,它允许用户点击以展开或收起TextView的内容,从而自定义控制显示的行数,并能以特定的提示文字表示是否还有更多内容。这种功能在诸如公告、评论或者...

    安卓textView相关-androidtextview点击文字收缩效果.rar

    本资源"安卓textView相关-androidtextview点击文字收缩效果.rar"显然是一个关于TextView实现点击后文字收缩动画效果的示例项目。下面将详细解释这个效果的实现原理以及可能涉及的技术点。 首先,TextView的点击事件...

    Android中TextView实现部分文字可点击跳转

    Android 中 TextView 实现部分文字...使用 SpannableString 和 ClickableSpan 可以实现 TextView 中的部分文字可点击跳转功能,并且可以根据不同的条件来设置点击事件的行为。这对于提高用户体验和交互效果非常有帮助。

    android 设置textview中划线效果

    通过本文的介绍,我们可以看到在Android中为TextView中的文本添加划线效果是一个相对简单的过程。只需要通过设置Paint对象的标志位即可轻松实现。然而,在实际开发过程中还需要注意一些细节问题,如兼容性、性能以及...

    Android 中实现对textView 显示部分文字,点击按钮后显示剩余文字以及再度隐藏文字 改进版本

    首先,我们需要在布局XML文件中定义一个TextView来展示部分文字,以及一个Button来触发显示或隐藏文字的事件。以下是一个简单的示例: ```xml xmlns:android="http://schemas.android.com/apk/res/android" ...

    Android流式TextView,类似文字标签。

    在Android开发中,流式TextView(Flowing TextView)是一种特殊类型的文本视图,它能够适应文本的长度,自适应地换行,使文本在屏幕中按照特定的方式流动展示,类似于常见的文字标签效果。这种效果常见于新闻应用、...

    SpannableString 一个TextView不同的效果实现

    这个技术专题主要探讨如何利用SpannableString来创建一个TextView,实现点击事件、下划线、局部字体放大、局部颜色变化以及删除线等多种功能。 首先,SpannableString是CharSequence的一个子类,它允许我们对字符串...

    android textview 指定片段添加点击事件

    ClickableSpan则是可以应用于SpannableString的一个类,它使我们能够为字符串的一部分添加点击事件。 步骤1:创建SpannableString ```java String originalText = "这是个示例文本,点击这里了解更多"; ...

    android中TextView高亮并可以点击

    综上所述,实现"android中TextView高亮并可以点击"的功能需要掌握Spanned、SpannableString、ClickableSpan、自定义点击事件处理、文本解析以及UI性能优化等技术。通过这些技术,我们可以构建出类似微博应用那样具有...

Global site tag (gtag.js) - Google Analytics