我目前正在我的android应用程序中解析JSON(注意,我对这方面还很陌生,包括android和JSON)。现在我得到了一个JSONObject,在这个对象中有一个JSONArray,里面有链接(字符串)。我想把这些链接放在Textview中的数组中,并使它们也可以点击。
使用Log.w,我可以检索以下输出:
<a href="http://xxxx.xx/xxxx/test.xlsx">test.xlsx</a>
URL看起来是有效的,但我试图让它们成为链接的一切似乎都失败了。这是我用来检索链接的代码:
ArrayList<String> map; //note it's already filled and contains strings like the example
sb = new StringBuilder("Items in map:nn");
for(int i=0;i<map.size();i++){
sb.append(Html.fromHtml("• " + map.get(i) + "<br/>"));
}
现在我将字符串生成器"清空"到我的TextView:中
TextView overView= (TextView)findViewById(R.id.textOverView);
overView.setText(sb.toString());
//make links clickable?
overView.setMovementMethod(LinkMovementMethod.getInstance());
我还尝试过使用Linkify,android:可点击属性,url编码器等等,但不幸的是,似乎什么都不起作用。如果我删除setMoveMent方法,链接甚至都不是蓝色的(更不用说可点击了),所有其他方法也是如此。
欢迎有任何想法!
MovementMethod
使链接可点击和选择。但是您需要先将ClickableSpan
实例附加到文本中,这样MovementMethod
才能工作。这是由Linkify
完成的,而MovementMethod
正好可以在大量文本中进行选择。我想你要的是这个,
android:autoLink="all"
android:linksClickable="true"
这只是让textview链接它用ClickableSpan
实例识别的所有链接,并设置正确的MovementMethod
。