0

我目前正在我的 android 应用程序中解析 JSON(请注意,我对这些东西很陌生;android 和 JSON)。现在我得到了一个 JSONObject,在这个对象内部有一个带有链接(字符串)的 JSONArray。我想将这些链接放在 Textview 内的数组中,并使它们也可点击。

使用 Log.wi 可以检索以下输出:

<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("&#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:clickable 属性、url 编码器等等,但不幸的是似乎没有任何效果。如果我删除 setMoveMent 方法,链接甚至都不是蓝色的(更不用说可点击了),所有其他方法也是如此。

欢迎任何想法!

4

1 回答 1

1

MovementMethod使链接可点击和可选择。但是您需要ClickableSpan先将实例附加到您的文本中,这样MovementMethod才能工作。这是通过Linkify并且MovementMethod只是为了可以在大量文本中选择它。我想你要的是这个,

android:autoLink="all"
android:linksClickable="true"

这只是让 textview 链接它识别的所有链接与ClickableSpan实例并设置正确的MovementMethod.

于 2013-02-23T16:56:27.917 回答