Android之TextView------LINK的点击事件

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); 
        &nbsp; String htmlLinkText= " <a href=\\" +"<a href="http://www.baidu.com/><u">http://www.baidu.com/><u</a>>我的CSDN博客 </u></a>";&nbsp;     
        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();
        }   
    }
} 

 

posted @ 2014-08-07 14:24  crazywenza  阅读(256)  评论(0编辑  收藏  举报