0

Androidアプリを開発していますが、問題が1つあります。私はラジオボタングループを持っています:

<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内)でその1つを動的にチェックしたいと思います。

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がチェックされます。ここで何が問題なのですか?通常、どの値に変数があるかは関係なく、常に1つのボタンがチェックされます。手伝ってくれてありがとう。

4

2 に答える 2

1

あなたの問題は明らかに状態です:

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

これは常にfalseを返します(文字列値ではなく参照を比較しています)。文字列を比較するときはいつでも、equals()メソッドを使用する必要があることを忘れないでください。

したがって、次のように変更します。

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

今それは動作します。これを読むことを強くお勧めします:

そして、1つの黄金のルールを覚えておいてください:常にあなたは文字列を比較したいequals()あなたの親友になります。

于 2013-03-18T20:47:10.887 に答える
0
status.equals("Zakończone") 

文字列equalsメソッドを使用する

于 2013-03-18T20:47:31.637 に答える