各項目にチェックボックスと 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 に値が設定されます。