【问题标题】:How to extract href from String and make it clickable如何从字符串中提取href并使其可点击
【发布时间】:2016-06-16 07:12:14
【问题描述】:

我正在获取一个 html 字符串,我想从中提取 href 字符串,并在将它们设置到 TextView 之前只使这些值可单击以启动一些自定义活动。这个我试过了

CharSequence sequence = Html.fromHtml(textPost.getDescription());
SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class);
for(URLSpan span : urls) {
       int start = strBuilder.getSpanStart(span);
       int end = strBuilder.getSpanEnd(span);
       int flags = strBuilder.getSpanFlags(span);
       ClickableSpan clickable = new ClickableSpan() {
               public void onClick(View view) {
                     Log.d("Home Activity", "Clicked yay");         
               }
        };
        strBuilder.setSpan(clickable, start, end, flags);
        strBuilder.removeSpan(span);
}
textHolder.content.setText(strBuilder);

这是突出显示文本,但是当我点击它们时,日志消息没有得到打印

【问题讨论】:

  • 您真正想要的是什么:- texview 中可点击的链接或文本视图中的 emaoil id 也是可点击的??
  • 该文本视图中可点击的链接。我有一个 html 字符串,看起来像这样 "可点击部分‍这是另一个随机文本。"我只想将“可点击部分”设为可点击
  • 你的textview的数据是固定的还是动态的??
  • 它是动态的。而且我得到的href数量也会有所不同
  • 你想在点击 textview 的链接时打开另一个活动??不是浏览器或 Gmail,你想打开??

标签: android href


【解决方案1】:

从字符串中提取超链接

Pattern.compile("[a-z]+:\/\/[^ \n]*").matcher(
"download_recording true Package available http://ab.com click the link").find();

并使其可点击

TextView tv = (TextView) findViewById(R.id.textHolder);
tv.setText(Html.fromHtml(getString(R.string.sampleText)));
tv.setMovementMethod(LinkMovementMethod.getInstance());

【讨论】:

  • 点击我希望它启动自定义活动而不是启动浏览器。
  • @ShashankUdupa .. 你在 textview 上的点击事件是数字还是文本还是超链接??
  • 在 api 调用后,我得到一个 html 字符串,如 String response = "可点击文本 Random stuff"。我需要在 TextView 中设置此字符串,使其以“可点击文本随机内容”的形式出现,当点击“可点击文本”时,新活动开始。
  • @ShashankUdupa,我的第一个模式字符串会给你特定的字符串。将其设置为 textview 或任何其他小部件并开始活动
猜你喜欢
  • 1970-01-01
  • 2020-09-22
  • 2013-09-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
相关资源
最近更新 更多