1

Adapterあらゆる種類のレイアウトを膨張させることができるカスタムを作成しようとしています。一般的とは、アダプターに設定されるあらゆる種類のデータと、アイテムに設定されるイベント リスナーであらゆる種類のレイアウトを使用できることを意味します。

例えば:

連絡先リストと国のリストがあります。連絡先リストのレイアウトには、人物の画像、名前、番号、およびチェックボックスの 4 つの項目があります。Country List には、CountryName(TextView) とチェックボックスが含まれています。

両方が同じアダプターを使用し、そのアダプターがすべての種類のアイテムを処理することは可能ですか?

アイテムをクリックした後、目盛りの画像がリセットされることを望みます。

4

1 に答える 1

3

さまざまな種類のさまざまなオブジェクトを含むリストがあり、表示するためにさまざまなビューが必要な場合。そのようにしてください:

オブジェクトが自分でビューを定義するようにします。ViewProviderすべてのオブジェクトにインターフェースを実装します。getView()このインターフェースは、アダプターで呼び出すことができるメソッドを提供する必要があります。

これで、アダプターは、完全なリストから要素を取得しViewProviders、メソッドを呼び出しgetViewてビューを取得するだけで済みます。

ViewProviderビューはすべてに保存され、一度だけ作成されるため、ビューのリサイクルについて心配する必要はありません。フィールドの更新(存在する場合)は、アダプターではなくオブジェクト側でも行うことができます。ただし、を呼び出してデータの変更についてアダプタに通知する必要がありますnotifyDataSetChanged()

于 2012-07-27T16:39:01.520 に答える