zoukankan      html  css  js  c++  java
  • 自定义 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); 
            String htmlLinkText 
    = "<a href=\"http://www.baidu.com\"><u>我的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();
            }   
        }
    }
  • 相关阅读:
    Linux 7 web服务基础知识
    Linux 6 Nginx
    Linux 5 MySQL、redis相关
    Linux 4 安装相关程序
    phpcms 路由配置
    ecmall 入口文件解析 引入了什么
    php 调用天气接口
    phpcms 加载微信类库,生成签名
    ecmall 学习记录2
    Jquery 遍历
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1836782.html
Copyright © 2011-2022 走看看