如何使用 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);
目前我的 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);