0

各項目にチェックボックスと TextView を持つカスタム リストビューがあります。最初に、チェックボックスの可視性を GONE に設定しました。

ボタンをクリックする私のアクティビティでは、すべての項目のチェックボックスが表示され、すべてのチェックボックスをクリックすると消えます(トグルボタンのように機能します)。

私は小さな問題でうまく実装しました:

ここに画像の説明を入力

ここで、最初の写真で、トグル ボタンをクリックすると、チェックボックスが表示されませんでした。スクロールしたときにのみ表示されます(2枚目の写真)。ボタンをクリックしても、getView はスクロール時にのみ呼び出されるため、現在のビューのアイテムの可視性は更新されません。

ボタンをクリックすると、現在のビューのチェックボックスも削除したいだけです。

これが私のコードです:

public View getView(final int index, View convertView, ViewGroup parent) {
   final ViewHolder holder;
   ...
   ...
   if(myActivity.buttonFlag)
      holder.myCheckBox.setVisibility(View.VISIBLE);
   else
      holder.myCheckBox.setVisibility(View.GONE);
   return convertView;
   }
static class ViewHolder
{
    CheckBox myCheckBox;
}

buttonFlagボタンのクリック時に値を true/false に設定するブール値です。ボタンをクリックするとbuttonFlag、Activity に値が設定されます。

4

1 に答える 1

0

notifyDataSetChanged()リストの内容を更新するには、トグル ボタン ハンドラから を呼び出す必要があるようです。

于 2012-09-03T11:59:38.277 に答える