0

ArrayAdapter を使用してオブジェクトからリストを生成しようとしています。結果は次のようになります。

アイテム A (3) アイテム B (1) アイテム C (0)

括弧内の数字は、そのファイルの背後にあるアイテムの量を表しています。括弧内に 1 がある場合は常に画像を表示したい - この場合はアイテム B のみ。

項目が 1 の場合にのみ true に設定される属性画像を利用できます。

ただし、リストを作成しているときは、項目 C を除くすべての場所にイメージが作成されます。その理由を理解しようとする短いログを作成したところ、そのpublic View getView(int position, View convertView, ViewGroup parent) { メソッドが最大 11 回呼び出されていることがわかりました。最初の3つで十分なはずです。アイテムが検出されたときにimageavailableをfalseに設定する必要があるというif句を変更したとき-最初のアイテムのみに画像がありました。誰でも私を助けることができますか?( if(imageavailable&number==1) も作成しようとしましたが、同じ結果になりました-最初の2つには写真があります

4

1 に答える 1

0

getView にロジックを追加するのではなく、アダプターを管理する必要があります。アダプターを処理するためのロジックは、独自のメソッドにする必要があります。例えば:

ArrayList<Drawable> adapter = new ArrayList<Drawable>();

void constructAdapter(List<Drawable>... drawables, int sizeFilter) {
    if (drawables != null) {
        for (List<Drawable> l : drawables) {
            if (drawable.size() == sizeFilter) {
                for (int i = 0; i < sizeFilter) {
                    adapter.add(l.get(i));
                }
            }
        }
    }
}

そして、ここからアダプタ リストをアレイ アダプタに渡します。

注:画像と言ったので、例としてdrawableを使用しました。その特定のデータ セットを処理するようにロジックを変更するだけであれば、これは何でも構いません。

于 2013-01-15T15:55:23.080 に答える