我将如何在 listView 中设置我的名称参数。
乍看上去。的第三个参数ArrayAdapter
应该是集合,但您只传递简单的字符串。根据你JSON
我推荐你:
- 创建自己的对象,该对象将代表具有属性(姓名、年龄等)的人
- 解析
JSON
并创建人员集合
- 将集合设置为 ListAdapter
例子:
public class Person {
private String name;
...
// getters and setters
@Override
public String toString() {
return this.name;
}
}
然后,您需要解析JSON
并获取正确的数据:
List<Person> persons = new ArrayList<Person>();
Person person = null;
JSONObject root = new JSONObject(sourceString);
JSONArray appointments = root.getJSONArray("Appointments");
JSONObject child = null;
for (int i = 0; i < appointments.length(); i++) {
child = appointments.getJSONObject(i);
if (child != null)
person = new Person();
person.setName(child.getString("Name"));
persons.add(person);
}
}
然后初始化ListAdapter
:
new ArrayAdapter<String>(getActivity(), layout, persons);
现在你明白了。
笔记:
我覆盖toString()
方法的原因是,由于您使用带有内置 Android 布局的默认 ArrayAdapter,因此 List 中的每个对象都将转换为 String 并显示在 ListView 中,但如果我不覆盖toString()
它,它将不会返回人的名称,但对象的字符串表示是人类不可读的字符串。