`
RandyWei
  • 浏览: 67046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android自定义TextView中的超链接点击事件处理

 
阅读更多

  1. package com.TextHtml;  
  2. import android.app.Activity;  
  3. import android.content.Context;  
  4. import android.os.Bundle;  
  5. import android.text.Html;  
  6. import android.text.Spannable;  
  7. import android.text.SpannableStringBuilder;  
  8. import android.text.method.LinkMovementMethod;  
  9. import android.text.style.ClickableSpan;  
  10. import android.text.style.URLSpan;  
  11. import android.view.View;  
  12. import android.widget.TextView;  
  13. import android.widget.Toast;  
  14. public class TextHtml extends Activity {  
  15.     /** Called when the activity is first created. */  
  16.     private TextView  tv;  
  17.     static Context ctx=null;  
  18.     @Override  
  19.     public void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.main);  
  22.         ctx=this;  
  23.         tv = (TextView) findViewById(R.id.tv);   
  24.         String htmlLinkText = "<a href="/" mce_href="/""http://www.baidu.com/"><u>我的CSDN博客 </u></a>";     
  25.         tv.setText(Html.fromHtml(htmlLinkText));  
  26.         tv.setMovementMethod(LinkMovementMethod.getInstance());     
  27.         CharSequence text = tv.getText();     
  28.         if(text instanceof Spannable){     
  29.             int end = text.length();     
  30.             Spannable sp = (Spannable)tv.getText();     
  31.             URLSpan[] urls=sp.getSpans(0, end, URLSpan.class);      
  32.             SpannableStringBuilder style=new SpannableStringBuilder(text);     
  33.             style.clearSpans();//should clear old spans     
  34.             for(URLSpan url : urls){     
  35.                 MyURLSpan myURLSpan = new MyURLSpan(url.getURL());     
  36.                 style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);     
  37.             }     
  38.             tv.setText(style);     
  39.         }  
  40.     }  
  41.       
  42.     private static class MyURLSpan extends ClickableSpan{     
  43.             
  44.         private String mUrl;     
  45.         MyURLSpan(String url) {     
  46.             mUrl =url;     
  47.         }     
  48.         @Override  
  49.         public void onClick(View widget) {  
  50.             // TODO Auto-generated method stub  
  51.             Toast.makeText(ctx, “hello!”,Toast.LENGTH_LONG).show();  
  52.         }     
  53.     }  
  54. }  

分享到:
评论

相关推荐

    Android自定义TextView链接点击和长按事件

    本篇将详细讲解如何在Android中自定义TextView,实现链接的点击和长按事件,以及相关的实现过程。 一、自定义TextView 为了实现链接点击和长按事件,我们需要创建一个新的View类,继承自TextView,并在其中添加...

    TextView上超链接可以点击.zip

    在"TextView上超链接可以点击.zip"的示例代码中,开发者可以深入学习如何结合`TextView`、`SpannableString`和`ClickableSpan`来实现自定义的超链接功能,包括文字的着色和点击事件的处理。这对于提升用户体验,尤其...

    Android如何通过TextView实现超链接的跳转

    - 直接在XML中使用`android:autoLink="web"`属性,系统会自动处理点击事件。但这种方法可能无法自定义点击行为。 - 或者,通过监听`MotionEvent`并在`ACTION_UP`事件中检查是否触发了链接。如果触发,使用`Intent`...

    TextView超链接自定义样式

    本篇将详细讲解如何在Android的`TextView`中实现超链接自定义样式,包括自定义字体颜色和去除超链接的下划线。 首先,让我们了解一下`TextView`中的`Links`。默认情况下,`TextView`会识别文本中的URL并自动将其...

    Android TextView中文字设置超链接、颜色、字体

    当我们在TextView的文本中插入URL时,可以使用`android:autoLink="web"`属性,让系统自动识别并转换为可点击的超链接。但这种方法可能无法满足所有需求,例如自定义链接样式。此时,我们可以使用`SpannableString`和...

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

    首先,为了实现超链接,我们需要创建一个自定义的ClickableSpan类,这个类继承自ClickableSpan,重写其onClick方法,以处理点击事件。以下是一个简单的ClickableSpan实现: ```java public class Clickable extends...

    TextView实现超链接的四种方式

    在Android开发中,TextView是用于显示文本的基本组件。在许多应用中,我们可能需要在TextView中展示带有超链接的文本,比如显示帮助文档、显示网页链接或者电子邮件等。本篇文章将详细探讨如何在TextView中实现...

    Android TextView添加超链接的方法示例

    在某些情况下,我们可能希望在TextView中添加超链接,以便用户能够点击这些链接进行交互,比如访问网页、拨打电话或发送电子邮件等。以下是如何在Android的TextView中添加超链接的详细方法。 首先,Android系统提供...

    Android开发之部分字符串可实现超链接点击事件的方法源码

    总的来说,Android开发中实现部分字符串的超链接点击事件主要依赖于TextView的SpannableString和WebView。具体实现方式取决于应用场景,如是否需要自定义点击行为、是否处理多个链接等。对于更复杂的用例,可以查阅...

    TextView中文字超链接,点击启动另一个Activity 源码

    在Android开发中,TextView是用于显示文本的基本组件。有时候,我们希望在TextView中展示的文本包含超链接,当用户点击这些...在实际项目中,还可以根据需要添加更复杂的逻辑,比如处理点击事件、添加动画效果等。

    Android使用内置WebView打开TextView超链接的实现方法

    总结起来,Android中处理TextView超链接的方法主要有以下几种: 1. 使用`LinkMovementMethod`和`Html.fromHtml()`,但默认会启动外部浏览器。 2. 通过`SpannableStringBuilder`和`ClickableSpan`自定义点击事件,...

    在TextView中添加超链接

    在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在用户界面设计中扮演着重要角色。当需要在TextView中插入可点击的超链接时,有多种方法可以实现这一功能。以下是对这些方法的详细介绍: 1. **...

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

    在Android开发中,TextView是用于显示文本的基本组件。在许多应用中,我们可能需要将TextView中的部分文字设置为超链接,以便用户点击后可以跳转到其他...记得在实际项目中,根据需求调整颜色、文字和事件处理逻辑。

    Android使用TextView实现无下划线超链接的方法

    总结一下,通过自定义`ClickableSpan`子类并设置`setUnderlineText(false)`,我们可以轻松地在Android的TextView中实现无下划线的超链接。同时,确保正确设置TextView的运动方法,以确保超链接的可点击性。这种方法...

    Android-TextView-LinkBuilder-master.zip

    项目中可能包含的代码示例展示了如何构建和使用自定义的LinkBuilder类,以便在TextView中插入可点击的超链接。 在Android中,我们通常使用`android:autoLink`属性来启用TextView的自动链接识别,例如电子邮件、电话...

    Android无下划线text超链接

    首先,我们创建一个接口,例如`OnTextLinkClickListener`,用于处理点击事件: ```java public interface OnTextLinkClickListener { void onLinkClick(String url); } ``` 接着,我们可以编写一个辅助方法来构建...

    Android应用:TextView超级链接的2种实现方法

    在Android开发中,...以上就是Android应用中TextView超链接的两种实现方法,无论是在XML布局文件中设置,还是在Java代码中动态处理,都能有效地为用户提供互动体验。在实际开发中,应根据项目需求选择合适的方法。

    Android中TextView自动识别url且实现点击跳转

    我们可以使用touchesBegan方法来处理点击事件,并判断用户是否点击了url。 实现TextView自动识别url且实现点击跳转需要使用ndataDetector来检测文本中的url,并使用AttributedString来设置url的样式。同时,我们还...

Global site tag (gtag.js) - Google Analytics