2013-02-23 66 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