0

switch文の中の文字列データ型の値をに変更しようとしています。です。そしてその文字列は宣言されたswitch文と同じメソッドの中で宣言されています。のユーザはラジオボタンをクリックすると値を変更する必要があります。JavaのSwitchステートメントの文字列の値を変更する

public void CreateQuestion(View view) { 

    String questionType = new String(); 
    RadioGroup questionTypeRadioGroup = (RadioGroup) findViewById(R.id.questionTypeRadioGroup); 
    questionTypeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { 
      switch (checkedId) { 
       case R.id.true_false: 
        questionType = "True/False"; 
        break; 

       case R.id.mcqs: 
        questionType = "MCQs"; 
        break; 
      } 
     } 
    }); 
} 
+0

あなたの文字列を宣言する必要があります。各ラジオボタンでクリックリスナーを設定することができます。それはあなたの仕事をします。 –

+0

エラーとは何ですか?彼は文字列を認識していないのですか?はい、それはスイッチのためではありません。なぜなら、あなたが新しいString();を呼び出す理由を – Nathan

+0

のインスタンス化した文字列にアクセスできない匿名クラスにいるからです。それは良い練習ではなく、必要ではない – user7294900

答えて

0

あなたが必要とする理由あなたはタイプを変更すると、あなたのラジオボタンのonClickのはとてもcheckChanged Listener.CheckChanegのみ機能したときに書いているUは、グローバル

public class ExampleActivity extends AppCompatActivity { 
    public String questionType; 

    .... 

    public void CreateQuestion(View view) { 
     questionType = ""; 
     questionTypeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { 
       switch (checkedId) { 
        case R.id.true_false: 
          questionType = "True/False"; 
          break; 

         case R.id.mcqs: 
          questionType = "MCQs"; 
          break; 
        } 
       } 
      }); 
     } 

    .... 

} 
+0

本当の問題は、switch文がまったく実行されないことです。両方のスイッチのケースでToastメッセージを作成しましたが、どちらのToastも表示されませんでしたか? – geekFromPeshawar

+0

このIDは正しいと思いますか? R.id.true_false&R.id.mcqs、あなたのXML plsを表示する –

関連する問題