当前位置 : 主页 > 手机开发 > android >

Android:如何在Java中以编程方式检查/取消选中RadioGroup中的RadioButton

来源:互联网 收集:自由互联 发布时间:2021-06-11
我要活动,MainActivity和settingsActivity.因为我在settingsActivity中使用onPause和onResume方法.因此,在切换到MainActivity并再次返回后,我在settingsActivity中完成的操作将被保存. settingsActivity: 在这里
我要活动,MainActivity和settingsActivity.因为我在settingsActivity中使用onPause和onResume方法.因此,在切换到MainActivity并再次返回后,我在settingsActivity中完成的操作将被保存.

settingsActivity:

在这里,我有一个TextView(称为“settings2”)作为一种变量和我的三个RadioButtons(radio0,radio1和radio2),它们在RadioGroup中.
切换到MainActivity后,如果上次检查radio0,我的程序会在文件中保存“0”(保存在SD卡上).但是如果上次检查了radio1,它会在该文件中放置1.如果上次检查了radio2,它会在该文件中放入2.
我在onPause方法中使用了这个.

然后在onResume方法中,我读取该文件的文本并将其放在TextView“settings2”中.
在此代码之后(仍在onResume中)我想检查/取消选中我的RadioButtons.因此,如果TextView“settings2”的文本为“0”,则应检查RadioButton“radio0”而不检查其他.如果此TextView的文本为“1”,则应检查RadioButton“radio1”而不检查其他.如果此TextView的文本为“2”,则应检查RadioButton“radio2”而不检查其他.
为此,我使用了以下两个代码但不幸的是它们没有用.

第一个代码:

if (settings2.getText().equals("0")) {

        radio0.setChecked(true);
        radio1.setChecked(false);
        radio2.setChecked(false);

    } else if (settings2.getText().equals("1")) {

        radio0.setChecked(false);
        radio1.setChecked(true);
        radio2.setChecked(false);

    } else if (settings2.getText().equals("2")) {

        radio0.setChecked(false);
        radio1.setChecked(false);
        radio2.setChecked(true);

    }

第二个代码:

if (settings2.getText().equals("0")) {

        radioGroup1.check(R.id.radio0);

    } else if (settings2.getText().equals("1")) {

        radioGroup1.check(R.id.radio1);

    } else if (settings2.getText().equals("2")) {

        radioGroup1.check(R.id.radio2);

    }

有人可以帮忙解决这个小问题吗?我期待着你的帮助!

提前致谢!

这是问题所在.

EditText et = ....
 et.getText() // Does not return a string, it returns an Editable.

尝试:

String str = et.getText().toString;

然后使用str进行比较.

编辑:请参阅下面的源代码,了解为什么必须使用字符串进行比较.默认值是通过引用进行比较,但字符串具有覆盖等于基于字符串值进行比较.如果您不使用String,则不会获得匹配.

public boolean More ...equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = offset;
            int j = anotherString.offset;
            while (n-- != 0) {
                if (v1[i++] != v2[j++])
                    return false;
            }
            return true;
        }
    }
    return false;
}
网友评论