- package com.cm;
- import java.util.ArrayList;
- import android.R.color;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Color;
- 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 {
- private TextView tv;
- private static Context ctx;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- tv = new TextView(this);
- ctx = this;
- String htmlLinkText = "我是超鏈接"+ "<a style=\"color:red;\" href='lianjie'>超鏈接點擊事件</a>";
- // 文字的樣式(style)被覆蓋,不能改變……
- 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_INCLUSIVE);
- }
- tv.setText(style);
- }
- setContentView(tv);
- }
- private static class MyURLSpan extends ClickableSpan {
- private String mUrl;
- MyURLSpan(String url) {
- mUrl = url;
- }
- @Override
- public void onClick(View widget) {
- if(mUrl .equal(lianjie)){
- Toast.makeText(ctx, mUrl, Toast.LENGTH_LONG).show();
- widget.setBackgroundColor(Color.parseColor("#00000000"));
- }
- }
- }
- }
轉:android TextView中超鏈接的事件捕捉(textview上LINK的點擊事件)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.