【问题标题】:Two checkboxes, can only select one两个复选框,只能选择一个
【发布时间】:2020-08-03 03:34:37
【问题描述】:

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

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

            }

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

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

【问题讨论】:

  • 你为什么不直接使用单选按钮组,他们已经有了这个功能。设计的复选框应该允许在一个组中进行多个检查,单选按钮不应该。
  • @TronicZomB - 问题是关于 CHECKBOXES - 只是说

标签: android checkbox layout


【解决方案1】:

【讨论】:

  • 会试试这个。
【解决方案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);
            }
        }
    });
}

【讨论】:

    【解决方案3】:

    使用此代码并在 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;
            }
    
                   } 
                  }
    

    【讨论】:

      猜你喜欢
      • 2013-10-21
      • 2017-08-10
      • 2018-08-10
      • 2020-01-20
      • 1970-01-01
      • 2018-06-23
      • 2015-06-06
      • 1970-01-01
      相关资源
      最近更新 更多