0

レイアウトにすべてのチェックボックスボタンを選択し、リストビューにはそれぞれ右側にチェックボックスがあります。すべて選択チェックボックスに次のコードを追加しました。

selectall.setOnCheckChangedListener コード:-

for(int i=0; i < listView.getChildCount(); i++){
    RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
    CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
    cb.setChecked(true);
}

ここでは、各リストビューアイテムを維持しています

holder.mcbGoupMember.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    // TODO Auto-generated method stub

                    commonFriends.get(position).setChecked(isChecked);
                }
            });

ここで私は状況に陥っています。すべてのチェックボックス項目を手動で選択すると、その瞬間にすべてのボタン/チェックボックスを選択する必要があり、その逆も同様です。

どうすればこれを達成できますか??

4

2 に答える 2

0

リストビューのチェックボックススクロールの問題については、このサンプルプログラムを参照してください

于 2013-02-18T05:38:15.687 に答える
0

一度にチェックしたアイテムの数を簡単に数えることができます。チェックを入れると1つ増え、チェックを外すと1つ減ります。このチェックされたアイテムの数がリストのアイテムの数と等しいかどうかを増減するたびにチェックし、そうであればすべて選択をチェックします。selectall.setOnCheckChangedListenerリストのチェックボックスの値を で受け取った値に設定していることを確認してくださいisChecked。例えば:

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  for(int i=0; i < listView.getChildCount(); i++){
      RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
      CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
      cb.setChecked(isChecked);
  }
}
于 2013-02-18T06:00:51.497 に答える