这是一篇回复,我找不到一个好的解决方案。我搜索了很多,我找不到像样的东西。我不知道我使用的方法是否是最好的方法,但它的工作原理,我觉得这是一个相当干净的解决方案。如何获取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