2013-03-18 62 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