2013-03-18 100 views
0

我正在开发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"; 
     }; 

即使 “状态” 变量“Zakończone”,niezakonczoneRadio被检查。这里有什么问题?通常一直检查一个按钮,无论哪个值都有变量。感谢帮助。

回答

2

你的问题是很明显的条件:

if (status == "Zakończone") { } 

这总是返回(你是比较引用不字符串值)。请记住,只要您想比较字符串,就必须使用equals()方法。

所以将其更改为:

if (status.equals("Zakończone")) { // or equalsIgnoreCase() } 

现在,它会工作。我强烈建议你阅读本:

记住一个金科玉律:总是要比较字符串equals()成为你的最亲密的朋友。

1
status.equals("Zakończone") 

使用字符串equals方法

+0

工程:)谢谢 – 2013-03-18 20:51:40