【问题标题】:Disabling the rest of the radiobuttons after 3 selections on Android在 Android 上选择 3 次后禁用其余的单选按钮
【发布时间】:2014-04-03 12:49:56
【问题描述】:

我有一个包含 7 个单选按钮的投票。在他们选择之后,我将如何做到这一点 3单选按钮,其余单选按钮选择无法选择和点击?或者有没有更简单的方法来实现这种方法?谢谢。

// Event handler for radio buttons
public void onRadioButtonClicked(View view) {

    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();





    // Check which radio button was clicked
    switch (view.getId()) {

    case R.id.RadioButton1:
        if (checked) {
            Toast.makeText(this, "You've selected: Hindi",
                    Toast.LENGTH_LONG).show();

        }

        break;
    case R.id.RadioButton2:
        if (checked)
            Toast.makeText(this, "You've selected: English",
                    Toast.LENGTH_LONG).show();

        break;
    case R.id.RadioButton3:
        if (checked) {
            Toast.makeText(this, "You've selected: English",
                    Toast.LENGTH_LONG).show();
            numThree++;
        }
        break;
    case R.id.RadioButton4:
        if (checked) {
            Toast.makeText(this, "You've selected: English",
                    Toast.LENGTH_LONG).show();

        }
        break;
    case R.id.RadioButton6:
        if (checked) {
            Toast.makeText(this, "You've selected: English",

        }
        break;
    case R.id.RadioButton7:
        if (checked) {
            Toast.makeText(this, "You've selected: English",
                    Toast.LENGTH_LONG).show();

        }
        break;
    }
}
}

【问题讨论】:

    标签: android radio-button


    【解决方案1】:

    我建议使用复选框,因为单选按钮通常意味着选择单个选项。

    您可以将最初为0的计数器,并且在未检查时检查并减少一个复选框时,可以增加一个计数器。一旦计数器为 3,您将禁用所有未选中的选项。

    【讨论】:

      【解决方案2】:

      单选按钮最适合一次只能选择一个选项的情况。我建议改用复选框,例如:

      public void onRadioButtonClicked(View view) {
      
      int count = 0;
      int maxSelected = 3;
      
      // .....
      
      case R.id.RadioButton1:
          if (checked) {
              Toast.makeText(this, "You've selected: Hindi",
                      Toast.LENGTH_LONG).show();
      
                     //LIKE THIS 
                      count += 1;
                      if(count>maxSelected) {
                           disableCheckboxes(); //this would move through and disable any checkbox that wasn't selected
                      }
      
          }
      

      【讨论】:

        【解决方案3】:

        没有最简单的方法可以解决您的问题。如果你真的想使用单选按钮,你必须使用没有单选按钮组的单选按钮。单击单选按钮应手动完成。通过选中单选按钮,您必须增加或减少单选按钮的总数。 我只向您展示两个按钮。您必须完成其余的操作。

        RadioButton radio1;
        RadioButton radio2;
        static int totalselectedRadioButton=0;
        
        radio1.setOnClickListener(new OnClickListener() {
        
        
                @Override
                public void onClick(View view) {
        
                    boolean isChecked = radio1.isSelected();
        // on radio button
                    if (!isChecked) {
                        radio1.setSelected(true);
                        radio1.setChecked(true);
                        totalselectedRadioButton ++;
        //disable other button when reached expected total Selected radio button
                        if(totalselectedRadioButton>0) {
                            radio2.setClickable(false);
                        }
                    }
                    else {
                        radio1.setSelected(false);
                        radio1.setChecked(false);
                        totalselectedRadioButton --;
                        if(totalselectedRadioButton<1) {
                            radio2.setClickable(true);
                        }
                    }
        
                }
            });
        

        【讨论】:

          猜你喜欢
          • 2016-01-22
          • 2016-05-31
          • 1970-01-01
          • 2018-06-13
          • 2013-01-19
          • 2011-02-16
          • 1970-01-01
          • 1970-01-01
          • 2017-01-01
          相关资源
          最近更新 更多