textview 设置SpannableStringBuilder实现点击事件
来源:互联网 发布:淘宝上都是国产植鞣革 编辑:程序博客网 时间:2024/06/02 00:01
实现目标:用TextView加载HTML代码 实现自定义点击URL事件
钱先生不哔哔 直接上代码
msg_context = (TextView) this.findViewById(R.id.msg_context); msg_context.setText(getClickableHtml(response.getResponseObject().getData().getMsgContent())); msg_context.setMovementMethod(LinkMovementMethod.getInstance()); //响应Span点击事件 private CharSequence getClickableHtml(String html) { Spanned spannedHtml = Html.fromHtml(html); SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml); URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class); for ( URLSpan span : urls) { Log.e("WebView_SpanUrl",span.getURL()); setLinkClickable(clickableHtmlBuilder, span); } return clickableHtmlBuilder; } private void setLinkClickable( SpannableStringBuilder clickableHtmlBuilder, URLSpan urlSpan) { int start = clickableHtmlBuilder.getSpanStart(urlSpan); int end = clickableHtmlBuilder.getSpanEnd(urlSpan); int flags = clickableHtmlBuilder.getSpanFlags(urlSpan); String newUrl= urlSpan.getURL(); clickableHtmlBuilder.setSpan(new ClickableSpan() {// 可以实现各种效果(点击事件 颜色等) public void onClick(View view) { //在这里添加点击事件 Log.e("WebView", "响应点击事件"+newUrl); if ( newUrl.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(newUrl)); startActivity(intent); } else if (newUrl.startsWith("http:") || newUrl.startsWith("https:")) { Intent intent = new Intent(MessageDetailAty.this, WebViewAty.class); if (newUrl.contains("skip_product.htm")) { intent.putExtra("title", "产品详情"); } else { intent.putExtra("title", getResources().getString(R.string.app_name)); } intent.putExtra("url", newUrl); startActivity(intent); } } }, start, end, flags); Log.e("WebView", "点击的url:" + newUrl+"=="+start+"=="+end); }
阅读全文
0 0
- textview 设置SpannableStringBuilder实现点击事件
- Textview设置超链接点击事件
- SpannableStringBuilder点击事件的问题
- 为TextView控件设置 网址点击事件
- Android - TextView 实现部分文本点击事件
- TextView实现多处不同点击事件
- Android TextView部分文字实现点击事件
- TextView 的点击事件
- TextView点击事件
- 设置TextView下划线并响应点击事件(SpannableString)
- 设置TextView部分文字下划线并响应点击事件(SpannableString)
- 对于TextView某些字符设置点击事件和改变颜色
- android 给textview部分文字设置点击事件
- textview设置多种不同的字体颜色和点击事件
- 安卓给TextView几个字段设置点击事件
- TextView设置部分文字颜色和点击事件
- 给TextView的drawableRight属性设置点击事件
- Android-TextView设置多种颜色及部分点击事件
- [洪流学堂]Hololens开发入门篇2之Hello World
- 【机器学习】Sklearn库主成分分析PCA降维的运用实战
- flume学习(四):Flume Interceptors的使用
- Hisi海思交叉编译iperf3,提示undefined reference to `__ctype_tolower' __ctype_b
- 编程中的24条经典语录
- textview 设置SpannableStringBuilder实现点击事件
- 顺序栈的C语言实现——初始化函数、入栈函数和出栈函数
- [angular]动态加载,降低页面初始化时间
- Fiori2.0学习笔记-OData的应用
- 如何客制化自己的开机向导
- 有关case when的两个sql案例
- 富士康给员工分红 平均每人33万元
- 决定在朋友圈公布我喜欢谁了
- Sublime theme