【问题标题】:How do I get a string that contains a link in Android?如何在 Android 中获取包含链接的字符串?
【发布时间】:2013-08-18 02:50:33
【问题描述】:

以下问题:我有一个方法可以生成一些计算的结果并将这个结果作为字符串返回。现在我希望这个结果包含一个可点击的链接。我怎么做?

这是我到目前为止所做的:

这是我生成结果字符串的方法的一部分:

Spanned link = Html.fromHtml("<a href='http://www.apple.com'>Apple.com</a>");
String result = "Website is: " + link;

然后,在另一种使用 String result 的方法中,我只是将 TextView resultText 的文本设置为:

resultText.setText(result);

问题在于,当文本显示时,文本不是链接,因此不可点击。但是,我已经在相应 TextView 的 XML 文件中设置了这个属性:

android:linksClickable="true"

这里有什么问题?

【问题讨论】:

  • 尝试添加这个 android:autoLink="all" 和这个 android:autoLink="web"

标签: android html hyperlink textview


【解决方案1】:

好的,我在http://android-coding.blogspot.de/2013/04/display-html-string-with-link-on.html上的这篇帖子的帮助下自己想通了

这是我所做的,也许对将来的某人有帮助:

我做了这些更改(将它们与我的问题中的代码进行比较)

  1. 在我的结果字符串生成方法中,我输入了以下代码:

    String link = "<a href='http://www.apple.com'>Apple.com</a>";
    String result = "Website is: " + link;
    
  2. 从 TextView 中的 XML 中删除这些属性

    android:autoLink="web"
    android:linksClickable="true"
    
  3. 当你真正在你的文本视图中设置文本时,这样做:

    resultText.setText(Html.fromHtml(result));
    resultText.setMovementMethod(LinkMovementMethod.getInstance());
    

【讨论】:

    【解决方案2】:

    你可以根据 ' 来切割字符串。您可以执行此 trim() 或 substring() 方法。查看this 链接。

    【讨论】:

      【解决方案3】:

      请参阅How to make normal links in TextView clickable? 问题。

      <TextView
          ...
          android:autoLink="web"/>
      

      android:autoLink="web" 控制是否自动找到 url 和电子邮件地址等链接并将其转换为 TextView 中的可点击链接。试试看。

      更新

      在您的原始代码中尝试

      Spanned link = Html.fromHtml("![CDATA[<a href="http://www.apple.com">Apple.com</a>]]");
      

      在string.xml中声明一个字符串:

      <string name="mylinks"><![CDATA[<a href="http://www.apple.com">Apple.com</a>]]></string>
      

      然后

      String link = Html.fromHtml(getResources().getString(R.string.mylinks));
      

      【讨论】:

      • 不要使用 HTML。试试这样的:String result = "Website is: " + "http://www.apple.com ";
      • 好的,但我不想显示 URL。我只想要 HTML 标签内的可点击文本。
      猜你喜欢
      • 1970-01-01
      • 2014-11-28
      • 2015-06-23
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2012-05-14
      相关资源
      最近更新 更多