怎么在TextView中的部分文字上响应点击事件

 我来答
time陌言成殇
2015-02-02 · TA获得超过8.4万个赞
知道大有可为答主
回答量:1.4万
采纳率:91%
帮助的人:9323万
展开全部

您好,很高兴为您解答。


package com.TextHtml;  
  
import android.app.Activity;  
import android.content.Context;  
import android.os.Bundle;  
import android.text.Html;  
import android.text.Spannable;  
import android.text.SpannableStringBuilder;  
import android.text.method.LinkMovementMethod;  
import android.text.style.ClickableSpan;  
import android.text.style.URLSpan;  
import android.view.View;  
import android.widget.TextView;  
import android.widget.Toast;  
  
public   class  TextHtml extends Activity {  
     /* * Called when the activity is first created.  */   
     private  TextView  tv;  
     static  Context ctx = null ;  
    @Override  
     public   void  onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        ctx = this ;  
        tv  =  (TextView) findViewById(R.id.tv);   
          String htmlLinkText= " <a href=\\" +"<a href="http://www.baidu.com/><u">http://www.baidu.com/><u</a>>我的CSDN博客 </u></a>";        
        tv.setText(Html.fromHtml(htmlLinkText));  
        tv.setMovementMethod(LinkMovementMethod.getInstance());     
        CharSequence text  =  tv.getText();     
         if (text instanceof Spannable){     
             int  end  =  text.length();     
            Spannable sp  =  (Spannable)tv.getText();     
            URLSpan[] urls = sp.getSpans( 0 , end, URLSpan. class );      
            SpannableStringBuilder style = new  SpannableStringBuilder(text);     
            style.clearSpans(); // should clear old spans      
             for (URLSpan url : urls){     
                MyURLSpan myURLSpan  =   new  MyURLSpan(url.getURL());     
                style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);     
            }     
            tv.setText(style);     
        }     
  
          
          
          
    }  
      
     private   static   class  MyURLSpan extends ClickableSpan{     
            
         private  String mUrl;     
        MyURLSpan(String url) {     
            mUrl  = url;     
        }     
        @Override  
         public   void  onClick(View widget) {  
             //  TODO Auto-generated method stub   
            Toast.makeText(ctx,  " hello! " ,Toast.LENGTH_LONG).show();  
        }     
    }  
}


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】


希望我的回答对您有所帮助,望采纳!


                                                                                                                             ~ O(∩_∩)O~

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式