zoukankan      html  css  js  c++  java
  • 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();
            }   
        }
    } 
  • 相关阅读:
    css 设置特定宽度,超出部分用...代替
    php 二维数组根据某个key去重
    一些大厂开源项目
    JavaScript如何解析本地xml文件
    console的知识点
    toLocalDateString的用途
    在Vue中使用Object.freeze
    淘宝npm镜像
    JavaScript Async/Await
    vue中的addEventListener和removeEventListener
  • 原文地址:https://www.cnblogs.com/crazywenza/p/3897090.html
Copyright © 2011-2022 走看看