0

私は Android プログラミングが初めてで、解決できないような状況で 2 日間立ち往生しています。
ほとんど類似性がない 2 つの異なるビューを設定する必要がある ListActivity があります。今まで MergeAdapter を使用してきましたが、うまくいきましたが、私の結果は次のようになりました: Adapter1,Adapter2. リストに表示されるアイテムの順序を変更する機能がありませんでした。私の質問は: 2 つのビューのアダプターではなく、2 つのビューのアイテムを保持するアダプターを作成することは可能ですか? 簡単にするために、これら 2 つの項目の ArrayList を取得し、それぞれに「int 位置」があるため、位置でソートされたリストに挿入できます。
編集:BaseAdapter を拡張しようとしましたが、オンラインで読んだように 2 つのアダプターが必要ですが、そうすると、リスト上の項目の位置を制御できなくなります。今回はもっと明確であることを願っています。どんな反応でも歓迎します。
ありがとうございました。

4

1 に答える 1

2

BaseAdapter をサブクラス化し、次のメソッドを利用できます。

getItemViewType(int position)

getViewTypeCount()

getViewTypeCount()アダプターがサポートするさまざまな行タイプの数を返す必要があります。getItemViewType()特定の行が持つべきビュータイプの「決定」を実装する場所です。たとえば、getViewTypeCount()が 3 を返す場合、getItemViewType()メソッドは 0、1、または 2 を返す必要があります。

これを getView 内で使用して、さまざまな行タイプのさまざまなレイアウトをインフレート/作成できます。

編集:

これはカスタム アダプターであるため、データにとって意味のある方法で実装できます。必要に応じて機能するデータ構造を作成できる場合は、アダプターがそれを処理できるようにするだけです。最悪の場合、オブジェクトの配列 (またはリスト) を持っているinstanceofだけで、決定作業を行うために使用する必要がある場合があります。

于 2013-07-18T15:56:51.210 に答える