Android でカスタムしたアイテムを表示する ListView 用の ArrayAdapter さわったときのメモ。
ListView は任意の View をよんでそれをアイテムとして表示できる。自作の layout を View にする場合はもちろんわたされるデータもデータをわたされる View もちがうので、データの受けわたしをするメソッドもふくめて調整しなくてはならない。
public View getView(final int position, View item_view, ViewGroup parent) { final PaperQListDat item_dat = this.getItem(position); if (item_dat == null) { return null; } if (item_view == null) { item_view = inflater.inflate(R.layout.paper_q_list, null); } TextView tv_q = (TextView) item_view.findViewById(R.id.textViewQ); TextView tv_a = (TextView) item_view.findViewById(R.id.textViewA); tv_q.setText(item_dat.getQ()); tv_a.setText(item_dat.getA()); return item_view; }
で、そのメソッドの引数にアイテム用の View があるんだけど、これは前もって設定できるとかではなくて、 すでに作成されたアイテム用の View の再利用につかわれる。なので inflater での layout からの View 取得は省略できません。