1

Android用のEclipseを使用して、可能な回答の4つのボタンを備えた多肢選択式クイズを書いています。

AskQuestionクラスで私は以下を入れました:

public void Answer1Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 1); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
    }
    public void Answer2Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 2); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
    }
    public void Answer3Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 3); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
    }
    public void Answer4Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 4); //Optional parameters
        AskQuestion.this.startActivity(myIntent);

これは、どのボタンが押されたかを宣言するanswerという文字列を送信する必要があります - それは実際に起こっていることですか?

CheckQuestionクラスには次のコードがあります

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_check_question);
        Intent intent = getIntent();
        intent.getStringExtra("answer");

ボタンが押されたときに送信されたインテントから応答文字列を受け取る必要があるのはどれですか?これは機能しますか?

CorrectAnswer"answer" の値が、res/values フォルダーに設定したグローバル変数と同じかどうかを確認する if 条件を追加したいのですが、うまく機能させるのに苦労しています。

助けやアドバイスをありがとう。

4

4 に答える 4

0

インテントに整数を設定しましたが、新しいアクティビティで文字列 (getStringExtra) を取得したいとします。文字列を入力する (例: "" で囲む) か、値を整数として取得してください。

于 2013-06-21T08:25:00.000 に答える
0

なぜgetStringExtra()ですか?intthere:を入れているのがわかります。myIntent.putExtra("answer", 3);したがって、getStringExtra()null が返されると思います。代わりに使用してみてください: getIntExtra()、次に整数を比較します。

少し話が逸れるかもしれませんが、ここでちょっとした提案です。これら 4 つのメソッドにはすべて重複したコードが含まれており、異なるのは答えだけです。答えをパラメーターとして受け取る単一のメソッドを作成し、どこでも使用できます。

このようなもの:

public void answerPressed(View view, int answer){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", answer); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
}

これで、任意の回答に対してこの 1 つの方法のみを使用できます。

answerPressed(view, 1);
answerPressed(view, 2); 
//.. and so on
于 2013-06-21T08:17:03.507 に答える
0

このような文字列を比較できます

 if(intent.getStringExtra("answer").equals(getResources().getString(R.string.answerstring)))
    {
    Toast.makeText("Answer is correct").show();
    }

しかし、整数でこれらを行う方が良いです。

于 2013-06-21T08:07:37.160 に答える