无法选中单选按钮

5

为什么我在程序中取消选中单选按钮后,除非我选中另一个单选按钮,否则在单击下一步按钮时无法再次选中同一单选按钮。

以下是取消选中单选按钮的代码:

        if(q.trim() != null || q.trim() != ""){
            questionView.setText(q);
            r1.setChecked(false);
            r2.setChecked(false);
            r3.setChecked(false);

            r1.clearFocus();
            r2.clearFocus();
            r3.clearFocus();

            r1.setText(varNames.get("ra0"));
            r2.setText(varNames.get("ra1"));
            r3.setText(varNames.get("ra2"));
        }

这就是我尝试检查它的地方:

public void questionClicked(View view) {

    boolean checked = ((RadioButton) view).isChecked();

    switch(view.getId()) {
        case R.id.firstQuestion:
            if(!checked) {
                r1.setChecked(true);
            }
            getAnswer(R.id.firstQuestion);

            break;
        case R.id.secondQuestion:
            if(!checked) {
                r2.setChecked(true);
            }
            getAnswer(R.id.secondQuestion);

            break;
        case R.id.thirdQuestion:
            if(!checked) {
                r3.setChecked(true);
            }
            getAnswer(R.id.thirdQuestion);

            break;
    }
}

我认为你不需要使用 ".setChecked" 来选取这些单选按钮中的任何一个,因为默认情况下当单选按钮被点击时,它们会自动被选取或取消选取。尝试去掉你用于“.setChecked”单选按钮的那几行代码。 - Antonios Tsimourtos
是的,我尝试过了,但没有成功。 - Besart
1个回答

0
我认为你应该创建一个清除选中单选按钮的方法,并在每次单击“下一步”按钮时调用它。这是一个例子:
private void clearcheck(){        
        if(q.trim() != null || q.trim() != ""){
            questionView.setText(q);
            r1.setChecked(false);
            r2.setChecked(false);
            r3.setChecked(false);

            r1.clearFocus();
            r2.clearFocus();
            r3.clearFocus();

            r1.setText(varNames.get("ra0"));
            r2.setText(varNames.get("ra1"));
            r3.setText(varNames.get("ra2"));
        }
}

在您的下一个按钮的onclick中调用clearcheck();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接