如何使用ArrayAdapter选择要在ListView上显示的JSON的一个值

时间:2015-01-09 02:11:33

标签: android json listview android-listview android-arrayadapter

目前我的ListView显示以下内容:

对象[id = 1,name = Object 1,...]

对象[id = 2,name = Object 2,...]

对象[id = 3,name = Object 3,...]

List<Object> listObject = getObjectListFromJson(jSonObjects);


ArrayAdapter<Object> objectArrayAdapter = new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_1, android.R.id.text1, listObject);

我想只显示JSON的“name”值,如:

对象1

对象2

对象3

我是否需要编写自定义适配器,或者是否有办法使用默认适配器获取“name”变量?

抱歉,我是Android开发和stackoverflow的初学者。问我是否需要更多信息。

2 个答案:

答案 0 :(得分:0)

List<Object> listObject = getObjectListFromJson(jSonObjects);

DO

List<String> nameList = new ArrayList<String>();

for (int i=0; i<listObject.size(); i++) {
    nameList.add(listObject.get(i).name); // Change ".name" to the appropriate way to get the name of the object. It depends on the object
}

并更改

ArrayAdapter<Object> objectArrayAdapter = new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_1, android.R.id.text1, listObject);

ArrayAdapter<String> objectArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, nameList);

答案 1 :(得分:0)

如果你有getObjectListFromJson创建一些自定义对象类型来保存ID和名称,那么你需要做的就是在该类上添加一个toString方法来返回名称部分。例如:

class MyObject {
    long id;
    String name;
    public String toString() { return name; }
}

List<MyObject> listObject = getObjectListFromJson(jSonObjects);


ArrayAdapter<MyObject> objectArrayAdapter = new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_1, android.R.id.text1, listObject);