TextView上设置超链接,点击启动Activity
2017-03-17 10:54
239 查看
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, MyActivity.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());
相关文章推荐
- android TextView、EditText对部分内容设置颜色、字体、超链接、图片、点击事件
- android 为TextView的部分文字设置超链接样式并监听点击事件
- 为 TextView 的部分文字设置超链接样式并监听点击事件
- TextView 超链接点击跳转到下一个Activity
- android 为TextView的部分文字设置超链接样式并监听点击事件
- Textview设置超链接点击事件
- TextView中添加链接,点击启动另一个Activity
- TextView中添加链接,点击启动另一个Activity
- 【Android开发日记】TextView超链接启动 Activity,取消下划线自定义颜色
- android TextView、EditText对部分内容设置颜色、字体、超链接、图片
- android中用Spannable在TextView中设置超链接、颜色、字体
- Android TextView内容设置超链接、颜色、字体
- android中用Spannable在TextView中设置超链接、颜色、字体
- Android TextView中文字设置超链接、颜色、字体
- Android TextView中文字设置超链接、颜色、字体
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- Android自定义TextView中的超链接点击事件处理
- android学习中关于Textview,Button,EditText,连接的设置,Intent,Activity不同状态等的一系列基础知识点
- Android学习—— TextView ClickableSpan 点击链接事件 改超链接颜色
- android中用Spannable在TextView中设置超链接、颜色、字体