TextView中添加链接,点击启动另一个Activity
2012-10-09 15:08
435 查看
需求如题。
本例中如果有多个超链接,同样可以处理。
设置颜色和样式举例:
转自:/article/2262406.html
public class TestLinkActivity extends Activity { private TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); tv.setClickable(false); String htmlLinkText = "<a href=\"测试\">link</a> specified via an <a> tag."; // 文字的样式(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 class MyURLSpan extends ClickableSpan { private String mUrl; MyURLSpan(String url) { mUrl = url; } @Override public void onClick(View widget) { Toast.makeText(TestLinkActivity.this, mUrl, Toast.LENGTH_LONG).show(); widget.setBackgroundColor(Color.parseColor("#00000000")); Intent intent = new Intent(TestLinkActivity.this, TestActivity2.class); startActivity(intent); } } }
本例中如果有多个超链接,同样可以处理。
设置颜色和样式举例:
TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置 myTextView = (TextView) this.findViewById(R.id.myTextView); //创建一个 SpannableString对象 SpannableString sp = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体."); //设置超链接 sp.setSpan(new URLSpan("http://www.baidu.com"), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置高亮样式一 sp.setSpan(new BackgroundColorSpan(Color.RED), 17 ,19,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置高亮样式二 sp.setSpan(new ForegroundColorSpan(Color.YELLOW),20,24,Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //设置斜体 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 27, 29, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //SpannableString对象设置给TextView myTextView.setText(sp); //设置TextView可点击 myTextView.setMovementMethod(LinkMovementMethod.getInstance());
转自:/article/2262406.html
相关文章推荐
- TextView中添加链接,点击启动另一个Activity
- 在一个Activity里面的TextView上面添加网页链接,启动后到另一个Activity里面!
- 在一个Activity里面的TextView上面添加网页链接,启动后到另一个Activity里面!
- 在一个Activity里面的TextView上面添加网页链接,启动后到另一个Activity里面!
- Android TextView中添加链接并在链接部分字体变色可点击
- 在TextView上添加响应事件到另一个activity
- TextView添加链接实现富文本label带点击功能
- TextView上设置超链接,点击启动Activity
- 监听TextView中链接文本的点击事件
- TextView如何给其中的某一段文字添加点击事件?
- Android--EditText/TextView 中添加图片,以及点击图片.
- textview点击弹出键盘的回车键,添加相应事件
- 识别链接,可以点击TextView
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- Android供TextView添加多个点击文字
- 给TextView中的部分文本添加链接的两种方式
- android中TextView 添加ClickableSpan后点击选中文字背景变色问题
- Android开发技巧:在TextView控件中单击链接弹出Activity
- 让 Andriod TextView 中的文本链接可点击的方法—— Linkify 及其他
- Android-ListView中添加Button或者可点击TextView进行页面跳转