MergeAdapter を使用して、リストの各セクションに異なる種類の基になるデータが含まれるセクション化されたリストを作成しています。すべてが期待どおりに機能しています。ただし、ListActivity の onListItemClicked メソッドは、選択されたリスト アイテムの基になるデータの種類を判断する場合、必要以上に複雑に見えます。これは、オブジェクト タイプに対するリスト位置の別のマップを保持しない限り、選択した項目の基になるオブジェクトのタイプを判断する適切な方法を見つけることができないためです。getItemViewType メソッドを使用して同様のアイテムに対して同じタイプを返すことができることを望んでいましたが、それらのアイテムが ListView の別のセクションにある場合、MergeAdapter はセクションの位置によってオフセットされたタイプ値を返します。つまり、リストの別のセクションにある同じタイプのアイテムは、別のタイプの値を取得します。明らかな何かが欠けているような気がします...誰でも提供できる助けをいただければ幸いです。
3941 次
1 に答える
9
MergeAdapter を使用して、リストの各セクションに異なる種類の基になるデータが含まれるセクション化されたリストを作成しています。
プロジェクト ページに記載されているようMergeAdapter
に、「このコードの使用に関して質問がある場合は、cw-android Google グループに参加して質問してください」。
幸いなことに、ここであなたの質問を見ました。
これは、オブジェクト タイプに対するリスト位置の別のマップを保持しない限り、選択したアイテムの基礎となるオブジェクトのタイプを判断する良い方法を見つけることができないためです。
を呼び出しgetItem()
てMergeAdapter
実際のオブジェクトを取得し、instanceof
インターフェイスなどを使用または使用して、オブジェクト自体で使用する適切な型を見つけます。
于 2010-11-10T00:10:35.673 に答える