3

クイズベースのアプリを開発しています。クイズには、1つの質問と4つの多肢選択式の回答が含まれています。

ユーザーが4つのうちいずれかのオプションを選択すると、正解の場合は「あなたの答えは正しい」のように表示され、そうでない場合は「あなたの答えは間違っています」が正解とともに表示されます。

また、2つのボタン([次へ]と[戻る])があり、1つは次の質問に移動し、もう1つは戻るために使用します。

前の質問に戻るためのコードの書き方を教えてもらえますか?

私はこのようなことをしました:

 private void getShuffledArray() 
    {
        // TODO Auto-generated method stub
        for (int i = 1; i <= SIZE; i++) 
        {
            quizIndexList.add(i);

        }
        Collections.shuffle(quizIndexList);
        Log.d("ERR", "List A shuffling" + quizIndexList);

    }

    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.button1:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) {
                displayAnswer();


            }

            break;
        case R.id.button2:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) {
                displayAnswer();
            }
            break;

        case R.id.button3:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) {
                displayAnswer();
            }
            break;

        case R.id.button4:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) {
                displayAnswer();
            }
            break;

        case R.id.btn_next:
//          lyt_ans.setVisibility(View.GONE);
//          lyt_quest.setVisibility(View.VISIBLE);
            counter += 1;
            if (counter >= SIZE) {
                Collections.shuffle(quizIndexList);
                counter = 0;
            }
            getInfoFromDB(quizIndexList.get(counter));
            reLoad();
            break;

        case R.id.btn_bck:
             btn_next.setOnClickListener(new OnClickListener() 
               {

                public void onClick(View v) 
                {
                    // TODO Auto-generated method stub

                    finish();
                }
               });

        }

}

どんな助けでも感謝します、そして前もってありがとう。

4

3 に答える 3

3

@Rithesh-コードを取得していませんが、次のようにこのための単純なロジックが必要です1)質問配列2)回答配列リスト(または2次元配列と言います)ArrayList<ArrayList<String>> 3)各質問の回答インデックス(質問インデックス4と一致する必要があります)テキストビュー(質問を表示するため)、一度に1つだけを選択するように4つのラジオボタンで構成されるRadioGroup 5)次と前の2つのボタン6)主なもの追加setOnCheckedChangeListenerラジオグループに対しては、ユーザーが回答を選択し、どのラジオボタンがチェックされているかを確認した場合にのみ発火します(このラジオボタンのタグをその位置に設定します)。したがって、質問番号が2、ラジオチェック位置が3であるとし、チェックインするだけです。回答番号の回答配列と一致する場合はトーストを表示できます。一致しない場合は回答配列リストから回答を書き込み、トーストまたはアラートで表示します。7)次のボタンをクリックすると、テキストビューのテキストが次の質問に変更され、ラジオボタンのテキストが次の回答セットに変更されます。前のボタンをクリックするとその逆になります。

これは論理的にあなたにコードを提供することはできません

オプションを設定するコード

RadioButton option_rdb1 = (RadioButton) findViewById(R.id.option_rdb1);
setOptions(0);

// if you used ArrayList<ArrayList<String>> optionslist
public void setOptions(int index){
if((index-1) <= optionsList.size()){
    ArrayList<String> temp = optionslist.get(index);
    options_rdb1.setText(temp.get(0).toString();
    options_rdb1.setText(temp.get(0).toString();
    options_rdb1.setText(temp.get(0).toString();
    options_rdb1.setText(temp.get(0).toString();
  }
}

質問のインデックスを使用して、次の前のsetOptionsを呼び出すだけです。私index-1は0から始まる配列リストとして使用しました。したがって、インデックスの使用方法によって異なります。このようにして、最初のオプションを設定できます。次のボタンで呼び出す関数でも、上記のコード行をクリックして次に設定します。

于 2012-04-05T10:00:20.030 に答える
1

ボタンのonclickでbtn_nextはintprevを置きます

カウンターを変更する前に。

prev=counter<--- store the counter value..
counter += 1;
        if (counter >= SIZE) {
            Collections.shuffle(quizIndexList);
            counter = 0;}

btn_bckのonclickで、このような前の質問を取得します。

     getInfoFromDB(quizIndexList.get(prev));
    reLoad();
于 2012-04-05T09:51:41.077 に答える
0
  1. シャッフルする必要があるのは1回だけで(たとえば、oncreateの場合)、[次へ]または[戻る]を押すと、質問配列のインデックスをインクリメントまたはデクリメントする必要があります。
于 2012-04-05T09:36:17.647 に答える