如何在没有广播组的情况下取消选中单选按钮?

Bri*_*n J 5 android unchecked radio-button

我已经使用以下代码片段来设置一个单选按钮以取消选中另一个单选按钮,但是当我运行应用程序并选择两个单选按钮时,代码不起作用,因为两者都保持选中状态.

我正在使用相对布局,所以我不能使用任何其他解决方案与无线电组,我只是使用两个单独的单选按钮.

有人可以指出我在哪里可能出错了,因为我看不出逻辑中的缺陷,任何想法?

无论如何,这是我试图实现的解决方案,但它不适用于应用程序:

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.radBtnMM:
                if (checked)
                    //set inch button to unchecked
                     radioInch.setChecked(false);
                break;
            case R.id.radBtnInch:
                if (checked)
                    //set MM button to unchecked
                    radioMM.setChecked(false);
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Mił*_*osz 8

public void onRadioButtonClicked(View view)被叫什么时候?是听众吗?

这将有效:

layout.xml:

<RadioButton 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radBtnMM"
/>
<RadioButton 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radBtnInch"
/>
Run Code Online (Sandbox Code Playgroud)

YourActivity.java:

public class MainActivity extends Activity implements OnCheckedChangeListener {
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    setContentView(R.layout.activity_main);
    rb1 = (RadioButton) findViewById(R.id.radBtnInch);
    rb1.setOnCheckedChangeListener(this);
    rb2 = (RadioButton) findViewById(R.id.radBtnMM);
    rb2.setOnCheckedChangeListener(this);
    return true;
  }
  @Override
  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if (isChecked) {
      if (buttonView.getId() == R.id.radBtnInch) {
        rb2.setChecked(false);
      }
      if (buttonView.getId() == R.id.radBtnMM) {
        rb1.setChecked(false);
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)