這是一篇回覆,我找不到一個好的解決方案。我搜索了很多,我找不到像樣的東西。我不知道我使用的方法是否是最好的方法,但它的工作原理,我覺得這是一個相當乾淨的解決方案。如何獲取JSONArray以填充到ListActivity的ListView中
這裏要做一些假設。
- 你知道JSONArray是什麼,並且已經用某種數據填充了JSONArray。
{"result":
[
{"ACTIVE":"1","ID":"1","MAX_POPULATION":"1000","NAME":"Server 1","URL":"http://local.orbitaldomination.com/"},
{"ACTIVE":"1","ID":"2","MAX_POPULATION":"1000","NAME":"Server 2","URL":"http://server2.orbitaldomination.com/"}
]
}
這是填充到我的JSONArray我的JSON代碼。
- 您已經創建了一個ListActivity,其中包含一個ListView元素,並且您已經創建了一個佈局。如果您需要了解更多信息如何做到這一點,你可以參考Creating Lists Using the ListActivity
好了,這裏是真正的魔力是..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Pretty much ignore this .. it won't have anything to do with the example.
// Your setContentView should be your layout with your list element.
setContentView(R.layout.server_selection);
//psuedo code
//JArrayServers = JSONArray that has my data in it.
//Create a blank (for lack of better term) ArrayAdapter
ArrayAdapter<String> servers = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
//Loop though my JSONArray
for(Integer i=0; i< jArrayServers.length(); i++){
try{
//Get My JSONObject and grab the String Value that I want.
String obj = jArrayServers.getJSONObject(i).getString("NAME");
//Add the string to the list
servers.add(obj);
}catch(JSONException e){
}
}
//Add my Adapter via the setListAdapter function.
setListAdapter(servers);
//Display the listView
ListView lv = getListView();
lv.setTextFilterEnabled(true);
}
我創建從我可以一個空白ArrayAdapter告訴。然後,我循環通過數組獲取我的字符串並將其插入到適配器中,隨着我移動。最後,在循環結束時,我通過setListAdapter()函數插入適配器。
非常簡單,我認爲,但花了很多研究,拿出這個,從菜鳥。我相信你們所有的專家都會有更好的辦法。如果你這樣做,請將它張貼在容易找到的地方!
同意,你可以發表一個例子..問題更多的是,有關網絡上很少有關於如何做這樣的事情的信息,這就是爲什麼我發佈了這個。如果你可以花幾分鐘時間發佈一個例子,我相信所有的觀衆都會喜歡看它是如何實現的。 – 2010-09-14 17:08:32