展会信息港展会大全

Android TextView上响应部分文字的事件
来源:互联网   发布日期:2016-01-14 09:46:17   浏览:1720次  

导读:运行结果如下:TtActivity.javapublic class TtActivity extends Activity {/* * Called when the activity is first created. */private TextView tv;static Context ctx = null;@Override......

运行结果如下:

TtActivity.java

public class TtActivity 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.android100.org/\"><u>Android学习网</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, "" + mUrl, Toast.LENGTH_SHORT).show();

}

}

}

main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:id="@+id/tv"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">局部事件1 <a href="1" ><u>hello1</u></a>,事件2<a href="2" ><u>hello2</u></a></string>

<string name="app_name">Tt</string>

</resources>

赞助本站

人工智能实验室

相关热词: Android TextView 响应 文字

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港