2

ListView外部ボタンをクリックしたときに、の各アイテムの画像の可視性を変更したい(の一部ではないことを意味しますListView)。

したがって、 のすべての子ビューにアクセスする必要がありますListView。次に、次のようなループを実行しました。

for (int i = 0...
{
     View child_view = list_view.getChildAt(i);
     ...
}

問題は、この方法では、現在表示されている子にしかアクセスできず、 のすべての子のビューにアクセスする必要があることListViewです。

どうすればそのようなことができますか?

4

2 に答える 2

1

私は次の方法で問題を解決しました:

  • これで表示されているすべての子を変更します:ここにリンクの説明を入力してください

  • スクロール時に getView が更新されることが重要であるため、アダプタの関数 getView で非表示の子を変更します。

于 2013-02-27T22:00:47.597 に答える
1

解決策は簡単です

あなたのアダプタークラスでは、このようなint配列を取ります

int visibilities[]={ImageView.VISIBLE,ImageView.GONE,ImageView.INVISIBLE};

Drawable Resources から画像を設定している場合は、おそらく id を ArrayList アイテムに次のように渡します

CountriesList.add(new Country("India",R.drawable.india));

国クラス(あなたのBeanクラス(ゲッターセッタークラス))に別の変数を作成し、次のようなタイプのintを設定するよりも

class Country{
String name;
int flag;
int visibility;
}

リストに要素を追加しながら、このように可視性を渡します

 CountriesList.add(new Country("India",R.drawable.india,1));

そして、アダプタの getView() メソッドでは、おそらく次のようにリソースを設定します

holder.image.setImageResource(country.getFlag());

この行も追加します

holder.image.setVisibility(visibilities[country.getVisibility]);

これを説明するために、国の例を追加しました..以前のアプリでリストに同じトリックを使用しました...そしてそれは魅力的に機能しました..これがあなたの助けになることを願っています.

于 2013-02-21T19:13:35.263 に答える