我要活动,MainActivity和settingsActivity.因为我在settingsActivity中使用onPause和onResume方法.因此,在切换到MainActivity并再次返回后,我在settingsActivity中完成的操作将被保存. 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;
}
