【问题标题】:I want when click on check box1, then it chekecd and if checkbox2 is checked before , force it to no checked state(for android)我想在单击复选框1时,然后检查复选框,如果之前检查了复选框2,则将其强制为未选中状态(对于android)
【发布时间】:2014-01-10 16:34:14
【问题描述】:

你好 stackoverflow 的朋友们。我是android新手,我有一个简单的问题困扰着我! 我有 2 个 CheckBox(例如 CheckBoxAutomatCheckBoxManual) 。我想在CheckBoxAutomat 上的click 时,然后它 chekecd 并且如果CheckBoxManual 之前被选中,则强制它进入未选中状态。对于CheckBoxManual,这些事件必须完成。我写了这段代码,但对我来说结果错误。 如何根据说明更改复选框的已检查状态? 代码:

               CheckBoxAutomat.setOnCheckedChangeListener(new OnCheckedChangeListener() 
               {

                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
                {
                    // TODO Auto-generated method stub
                        if(!CheckBoxAutomat.isChecked())
                    { 
                            CheckBoxManual.setChecked(false);
    CheckBoxAutomat.setChecked(true);               


                    }

                }
             });
               //..............................
               CheckBoxManual.setOnCheckedChangeListener(new OnCheckedChangeListener() 
               {

                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
                {
                    // TODO Auto-generated method stub
                    if(!CheckBoxManual.isChecked())
                    { 
                        CheckBoxAutomat.setChecked(false);
    CheckBoxManual.setChecked(true);



                    }

                }
            });

【问题讨论】:

    标签: android checkboxlist android-checkbox


    【解决方案1】:

    试试这个:

    CheckBoxAutomat.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
         @Override
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
         {
             // TODO Auto-generated method stub
                 if(CheckBoxManual.isChecked()) {  // if Manual is checked uncheck it
                     CheckBoxManual.setChecked(false);
                 }
         }
      });
        //..............................
        CheckBoxManual.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
         @Override
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
         {
             // TODO Auto-generated method stub
             if(CheckBoxAutomat.isChecked()) {  // if Automat is checked, uncheck it
                 CheckBoxAutomat.setChecked(false);
             }
         }
     });
    

    【讨论】:

      【解决方案2】:

      我问这个问题是因为我不喜欢复选框的默认样式,而我确实需要单选按钮。所以我将 radioGroup 放在我的应用程序上,然后用我创建的 checkbox_selector(带有我最喜欢的图片)更改 android:button。像这样的 cb_selector :

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
          <item android:state_checked="true" android:drawable="@drawable/checked2" />
          <item android:state_checked="false" android:drawable="@drawable/unchecked2" />
      </selector>
      

      这必须写入drawable forlder中的xml文件。 然后我在我的 radioGroup 中的每个单选按钮的 Button 属性中编写 @drawable/cb_selector。 看到这个我的帖子 How I can have behavior RadioGroup SingleChoice for 2 or more checkbox on android?(at here for 2 checkbox ,specially)

      【讨论】:

        猜你喜欢
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多