次のフィールドを持つオブジェクト Human があります。
- 名前
- 姓
- DOB(生年月日)
リストビューにアイテムのセットを表示するために利用されているカスタムアダプターがあり、ヒューマンタイプの配列リストが供給されています。
ArrayList<Human> al = new ArrayList<Human>();
al = fillMyArraylist(); //abstracted method that does what it says
myAdapter adapter = new myAdapter (this, al);
lv.setAdapter(adapter);
私の myAdapter クラス (BaseAdapter を拡張する) には、名前と姓のみを表示し、生年月日を表示しないカスタム XML があります。
次に、メソッド setOnItemClickListener を使用しています
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
TextView nameTV = (TextView) view.findViewById(R.id.NametextView);
TextView surnameTV = (TextView) view.findViewById(R.id.SurnametextView);
String name= nameTV.getText().toString();
String surname= surnameTV .getText().toString();
}
});
ただし、(人間型の) AL には DOB も含まれているため、 setOnItemClickListener を使用して取得できる方法はありますか?
私が今までやろうとしたことは、カスタム XML 内に新しい行を作成して非表示にし、それを使用してデータを取得することですが、これは回避策であり、理想的なソリューションではないと思います。ヒントはありますか?