Android在Textview中解析JSONArray中的URL,并使其可点击



我目前正在我的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("&#8226; " + 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

相关内容

  • 没有找到相关文章

最新更新