以下问题:我有一个生成某些计算结果的方法,并将此结果作为字符串返回。现在我希望这个结果包含一个可点击的链接。我怎么做?
这是我到目前为止所做的:
这是生成结果字符串的方法的一部分:
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"
这里有什么问题?
答案 0 :(得分:2)
好的,我在http://android-coding.blogspot.de/2013/04/display-html-string-with-link-on.html
的帖子的帮助下弄明白了这就是我所做的,也许它对未来的某些人有帮助:
我做了这些更改(与我的问题中的代码进行比较)
在我的结果字符串生成方法中,我输入了以下代码:
String link = "<a href='http://www.apple.com'>Apple.com</a>";
String result = "Website is: " + link;
从TextView
中的XML中删除这些属性android:autoLink="web"
android:linksClickable="true"
当您在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链接。