RadioButton清除检查操作

时间:2016-01-13 14:21:48

标签: android android-radiobutton

我有一个简单的程序,在一个组中有3个单选按钮。当我点击任何一个单选按钮时,我会看到Toast,让用户知道他们选择了哪个按钮。

我面临的问题是,我有一个onClick事件,用于clearCheck无线电组的按钮。发生这种情况时,将再次显示Toast消息,其中包含单选按钮中的先前所选信息。

当我clearCheck收音机组时,如何防止吐司发生?

public class MainActivity extends AppCompatActivity {

    RadioGroup radioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Initialize Radio Group and attach click handler
        radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
        radioGroup.clearCheck();

        // Attach CheckedChangeListener to Radio Group
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton rb = (RadioButton) group.findViewById(checkedId);
                if(null!=rb && checkedId > -1){
                    Toast.makeText(MainActivity.this, rb.getText(), Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    public void onClear(View v){
        // Clears the radio buttons when the clear button is pressed
        radioGroup.clearCheck();
    }

1 个答案:

答案 0 :(得分:-1)

这是因为清除支票正在改变无线电组的已检查状态。你需要设置一个标志让听力知道它应该忽略那个变化。

只是在类中声明的一个简单布尔值,在onClear中标记并在onCheckChanged中签入(并重置onCheckChanged中的标记)。