2011-08-08 6 views
1

Adapterを持つListViewオブジェクトをCursorAdapterから拡張しました。 onListItemClick()メソッドには(ListView l, View v, int position, long id)のパラメータしかありません。現在選ばれているリストitemのデータベースを_idで照会する必要があります。しかし、私はdatabaseの行の_idをリストの行に表示したくありません。そこでTextViewlist_item.xmlに作成し、widthheight0pxに設定して非表示にしました。だからnewView()に私は_iddatabaseにリストのアイテムを関連付けることができます。ListViewの各アイテムをデータベースのIDと関連付ける方法

私はこのアプローチが醜いことを少し見つける。他のもっとすてきな解決策があるかもしれませんか?

+0

umm、なぜあなたは_idを "表示"する必要がありますか?それはリストの一部である必要は全くありません。 – Suchi

+1

しかし私はそれを見せたくありません。 – Eugene

答えて

2

this ViewHolderパターンを使用すると、行のタグにカスタムオブジェクトを設定できます。追加のプロパティをViewHolderクラス(_idなど)に追加して、ViewHolderオブジェクトの作成時にそれらを設定できます。ビューの膨張と再利用のパフォーマンスにも役立ちます。

2

View.setTag()を使用して、カスタムカスタムオブジェクトをカスタムCursorAdapterから返すビューに設定できます。その後、onListItemClick()からこのタグにアクセスします。

+0

ViewをViewHolderに関連付けるために、すでにこれを使用しています。 1つのオブジェクトに対して複数のタグを設定できますか? – Eugene

+0

申し訳ありませんinazaruk、ちょうど私があなたがした後、私は同じ答えで答えた。 –

+0

@Patrick Kafka、問題はありません:) – inazaruk

関連する問題