0

シナリオ-

itemnaem  A
itemnaem  A
itemnaem  B
itemnaem B
itemnaem  B
itemnaem  C
.
.
.
itemnaem  c

50 個のアイテムを含む配列リストがあります。この 50 個のアイテムのうち、10 個がタイプ A に属し、20 個がタイプ B に属し、残りがタイプ C に属します。

タイプAのすべてのアイテムが最初に来て、次にタイプB、次にタイプCが来るリストビューを膨らませたい.

配列リストから、項目を 3 つの異なるリスト A、B、C に分けることができます。

しかし、それらをその順序で表示する問題に直面しています。

if(aList!=null && aList.size()>0 && countA!=0){
                holder.txt.setText(aList.get(position));    
                holder.img.setImageResource(R.drawable.icnA);   
                    countA--;           
            }
            else {
                        if(countA==0 && bList!=null && bList.size()>0 && countB!=0){                        
                        holder.txt.setText(bList.get(position-aList.size()));
                        holder.img.setImageResource(R.drawable.icnB);
                        countB--;
                        }
                    else{
                        if(countA==0 && countB==0 && arr!=null && arr.size()>0){
                                holder.txt.setText(c.get(position-aList.size()-bList.size()));
                                }
                    }
            } 

countAA countBのリスト サイズ B のリスト サイズ

私が使用したアダプタのgetcountメソッドで

public int getCount() {
        return c.size()+AList.size()+BList.size();

    }

リストとbリストの問題は正常に機能しますが、cリストではインデックスが範囲外の例外を与えます

4

2 に答える 2

0

ついに解決策を見つけました.....

linekedHashSetDを作成しました

D.addAll(a);
D.addAll(b);
D.addAll(c);

配列リストE

E.addAll(D);

dを使用してリストを膨らませます。順序は維持されます:)

于 2013-02-28T12:06:31.643 に答える
0

まさにあなたが必要としているものを見つけたと思います。この特定の例では、sectionItem と EntryItem に個別のアダプターを実装する必要があります。

アダプターと ListItems (独自の item.xml でカスタマイズ) の処理方法を理解していることを前提として、これはセクションとエントリの作成方法に関する本格的なチュートリアルです (解決策 #2)。

チュートリアルでは、コードから xml へのレイアウトも示されていますが、セクションとエントリ項目の独自のカスタム レイアウトを作成することもできます。これは非常に簡単でわかりやすいものです。

次のように外れるようにします。 ここに画像の説明を入力

于 2013-02-28T11:46:35.643 に答える