6

我正在开发一个登录屏幕,基本上您可以选择是要 4 位数 PIN 访问还是刷卡方法安全;我希望它看起来的方式是布局中有两个复选框,最初它们都未选中。当您选择一个时,它会被选中,但如果您尝试选择另一个,它会自动取消选中第一个。我在布局中定义了两个复选框,但是我对强制取消选中必须引用的内容感到有些困惑。

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

            }

基本上,我知道必须在 if{} 语句中自动取消选中 setupCheckBox2 的内容,但我只是不确定必须将什么设为假。任何帮助表示赞赏!

此外,我意识到这是一种单行答案,如果有人对 Android 中的复选框有任何好的参考,我也不介意阅读它,我对这些东西有点陌生。

4

3 回答 3

2

Android 开发者:http: //developer.android.com/reference/android/widget/CheckBox.html

回答类似问题:https ://stackoverflow.com/a/13133373/2315997

于 2013-06-07T14:23:20.213 回答
2

很简单,试试这段代码

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);
            }
        }
    });
}
于 2016-09-17T11:52:17.360 回答
0

使用此代码并在 logcat 中查看选定的复选框值.....

     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;
        }

               } 
              }
于 2014-06-03T06:11:13.823 回答