listView で自分の名前パラメーターを設定するにはどうすればよいですか。
一目で。の 3 番目のパラメーターはArrayAdapter
コレクションにする必要がありますが、単純な文字列のみを渡しています。あなたによると、JSON
私はあなたをお勧めします:
- プロパティ (名前、年齢など) を持つPersonを表す独自のオブジェクトを作成します。
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()
しないと人のものを返さないためです。名前ですが、人間が読めない文字列であるオブジェクトの文字列表現。