我正在开发Android应用,我有一个问题。我有Radiobutton小组:
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/niezakonczoneRadio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="6dp"
android:layout_marginRight="14dp"
android:layout_marginTop="0dp"
android:onClick="niezakonczoneRadio"
android:text="Niezakończone" />
<RadioButton
android:id="@+id/zakonczoneRadio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="6dp"
android:layout_marginRight="14dp"
android:layout_marginTop="0dp"
android:onClick="zakonczoneRadio"
android:text="Zakończone" />
</RadioGroup>
我想在if ... else语句(在onCreate中)中动态检查其中一个,如下所示:
if (status=="Zakończone"){
RadioButton radioTak = (RadioButton) findViewById(R.id.zakonczoneRadio);
radioTak.setChecked(true);
status_radio="1";
} else {
RadioButton radioNie = (RadioButton) findViewById(R.id.niezakonczoneRadio);
radioNie.setChecked(true);
status_radio="0";
};
即使“status”变量为“Zakończone”,也会检查niezakonczoneRadio。这有什么问题?通常一直检查一个按钮,没有哪个值具有变量。谢谢你的帮助。
答案 0 :(得分:2)
你的问题显然是条件:
if (status == "Zakończone") { }
这总是返回 false (您正在比较引用而不是String值)。请记住,无论何时想要比较字符串,都必须使用equals()
方法。
所以改成它:
if (status.equals("Zakończone")) { // or equalsIgnoreCase() }
现在它会起作用。我强烈建议你阅读:
请记住一条黄金法则:总是要比较字符串equals()
成为您最亲密的朋友。
答案 1 :(得分:1)
status.equals("Zakończone")
使用字符串equals
方法