package com.su.testlink;
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 TestLinkActivity 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.sohu.com/><u>测试 </u></a><br/>" +
"<a href=http://wwwdd.com/><u> 测试1 </u></a><br/>" +
"<a href=http://wwdfd.com/><u>测试2 </u></a><br/>" +
"<a href=http://wdfdww.baidu.com/><u>测试3 </u></a><br/>";
tv.setText(Html.fromHtml(htmlLinkText));
tv.setMovementMethod(LinkMovementMethod.getInstance());
addLink(tv);
}
private void addLink(TextView tv) {
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!" + mUrl, Toast.LENGTH_LONG).show();
}
}
}