2013-02-23 68 views
0

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

使用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("&#8226; " + map.get(i) + "<br/>")); 
    } 

现在,我的“空” StringBuilder的到我的TextView:

TextView overView= (TextView)findViewById(R.id.textOverView); 
    overView.setText(sb.toString()); 
    //make links clickable? 
    overView.setMovementMethod(LinkMovementMethod.getInstance()); 

我还试图用Linkify,Android的:可点击的属性,网址编码器等,但不幸的是似乎没有任何工作。如果我删除setMoveMent方法,链接甚至不是蓝色(更不用说可单击),对于所有其他方法也是如此。

任何想法都是最受欢迎的!

回答

1

MovementMethod使链接可点击和可选。但您首先需要ClickableSpan实例附加到您的文本,因此MovementMethod可以工作。这是通过LinkifyMovementMethod完成的,它可以在大量文本中进行选择。我想你问的是这个,

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

这只是有TextView的链接它ClickableSpan实例,并设置适当的MovementMethod承认所有链接。

+0

它没有工作。我已经将这2个添加到了我的TextView中。 (甚至没有添加这两行代码)链接不可见为链接,而只是纯文本。换句话说,Hey there!显示为Hey在那里!然而这条线不是可点击的,也不是蓝色的。 – Gooey 2013-02-24 18:39:14

+0

因此您的字符串版本将删除所有格式。不要在每次迭代中使用fromHtml()调用。完成所有内容后,在StringBuilder上使用它。 – 2013-02-25 18:16:51