如何使用 ArrayAdapter select JSON 的一个值显示在 ListView 上

How to select one value of a JSON to display on ListView using ArrayAdapter

目前我的 ListView 显示如下:

对象[id=1,名称=对象 1,...]

对象[id=2,名称=对象 2,...]

对象[id=3,名称=对象 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 开发和 Whosebug 的初学者。问我是否需要更多信息。

之后

List<Object> listObject = getObjectListFromJson(jSonObjects);

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);

如果您让 getObjectListFromJson 创建一些自定义对象类型来保存 ID 和名称,那么您需要做的就是在 class 到 return 名称部分添加一个 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);