如何获取包含Android链接的字符串?

时间:2013-08-15 19:58:34

标签: android html hyperlink textview

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

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

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

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

然后,在另一个使用字符串result的方法中,我只需像这样设置TextView resultText的文本:

resultText.setText(result);

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

android:linksClickable="true"

这里有什么问题?

3 个答案:

答案 0 :(得分:2)

好的,我在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. 当您在textview中实际设置文本时,请执行以下操作:

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

答案 1 :(得分:0)

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

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

android:autoLink="web"控制是否自动找到网址和电子邮件地址等链接,并将其转换为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));

答案 2 :(得分:0)

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