我目前正在我的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:\n\n");
for(int i=0;i<map.size();i++){
sb.append(Html.fromHtml("• " + map.get(i) + "<br/>"));
}
现在我&#34;空&#34; stringbuilder进入我的TextView:
TextView overView= (TextView)findViewById(R.id.textOverView);
overView.setText(sb.toString());
//make links clickable?
overView.setMovementMethod(LinkMovementMethod.getInstance());
我还尝试使用Linkify,android:可点击属性,url编码器等等,但遗憾的是似乎没有任何效果。如果我删除setMoveMent方法,链接甚至不是蓝色(更不用说可点击),所有其他方法也是如此。
欢迎任何想法!
答案 0 :(得分:1)
MovementMethod
使链接可点击并可选择。但是,您需要首先将ClickableSpan
个实例附加到您的文本中,以便MovementMethod
可以正常工作。这是由Linkify
完成的,而MovementMethod
只是为了可以在大量文本中进行选择。我想你要求的是这个,
android:autoLink="all"
android:linksClickable="true"
这只是将textview链接到ClickableSpan
个实例所识别的所有链接,并设置正确的MovementMethod
。