web-dev-qa-db-ja.com

チェックボックスをオフにする方法Androidチェックボックス

Android app。と保存ボタンにも2つのラジオボタンと5つのチェックボックスがあります。ユーザーが保存ボタンをクリックしたとき、ユーザーがチェックしたチェックボックスをオフにする必要があります。私は次のコードですが、機能していません。

if (chkOthers.isChecked()) 
    chkOthers.setChecked(false);
    chkOthers.setSelected(false);
}
11
user1767260

ボタンのchk1.toggle()onClickを使用して、チェックされているチェックボックスをオフにします。

public class TestCheckBoxActivity extends Activity {
  /** Called when the activity is first created. */
     CheckBox chk1, chk2;

        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        chk1 = (CheckBox)findViewById(R.id.checkBox1);
        chk2 = (CheckBox)findViewById(R.id.checkBox2);

        Button btn = (Button)findViewById(R.id.button1);

        btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(chk1.isChecked()){
                chk1.toggle();
            }

            if(chk2.isChecked()){
                chk2.toggle();
            }

        }
    });
       }
}
14
AndroGeek

これにチェックボックスを使用したい場合は、両方のチェックボックスにonItemClickListenerを設定し、onItemClick()メソッドで他のチェックボックスをオフにする必要があります。例は次のようになります:-

CheckBox cb1,cb2;
//Considering you can initialize the above variables
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener{
    onCheckedChanged (CompoundButton view, boolean isChecked){
        cb2.setChecked(false);
    }
});
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener{
    onCheckedChanged (CompoundButton view, boolean isChecked){
        cb1.setChecked(false);
    }
});

最初からこの機能が組み込まれているため、この動作にはラジオボタンを使用することをお勧めします。

10
Ethan Hunt