两个复选框,只能选择一个

时间:2013-06-07 14:19:55

标签: android layout checkbox uncheck

我正在登录屏幕上,您基本上可以选择是否需要4位PIN访问权限或滑动方法安全性;我希望这样看的方式是布局中有两个复选框,最初它们都是未选中的。当您选择一个时,它会被检查,但如果您尝试选择另一个,它会自动取消选中第一个。我在布局中定义了两个复选框,但是我有点困惑,因为我必须引用它来强制取消选中。

public void onCheckBoxClicked(View view){
    boolean checked = ((CheckBox)view).isChecked();
    switch(view.getId()){
        case R.id.setupCheckBox1:
            if(checked){

            }

基本上,我知道如果{}语句自动取消检查setupCheckBox2,那么必须要考虑一些事情,但我只是不确定必须做什么是假的。任何帮助表示赞赏!

另外,我意识到这是一个单行答案,如果有人对Android中的复选框有任何好的参考,我也不介意阅读,我对这些东西都是新手。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

非常简单,试试这段代码

public onCreate(Bundle savedInstanceState)
{
    cbx_hindi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
            {
                cbx_english.setChecked(false);
            }
        }
    });
    cbx_english.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
            {
                cbx_hindi.setChecked(false);
            }
        }
    });
}

答案 2 :(得分:0)

使用此代码并在logcat中查看所选的ckeck box值.....

     public class MainActivity extends Activity implements OnClickListener  {

        CheckBox hindi, english;
        Button submit;
        String language;


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


     hindi = (CheckBox) findViewById(R.id.checkBox1);
    english = (CheckBox) findViewById(R.id.checkBox2);

    submit = (Button) findViewById(R.id.submit);
    submit.setOnClickListener(this);

}

         @Override
     public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {


        case R.id.submit:


        if(hindi.isChecked())
            {

                language="hindi" ; 

            }


            if(english.isChecked())
            {

                language="english" ; 

            }


            if((hindi.isChecked()==true)&&(english.isChecked()==true))
                     {

            Toast.makeText(DrivingTestActivity.this,
            "please select one language", Toast.LENGTH_LONG).show();


                      }
             else
             {
                 System.out.println("language" + language);
             }
                      break;

        default:
            break;
        }

               } 
              }