-1

クイズを作成しようとしていますが、10 の質問 (クラス) がランダム化されていますが、5 つの質問 (クラス) のみを表示したいのですが、その後、クイズの最後にスコアが表示されます..どうすればそれを行うことができますか? してください.....またはアンドロイドでランダム化を制限することは可能ですか? 助けてくれてどうもありがとう..

これがコードです。再生を開始すると、ランダム化が必要になります。

public class Whoami extends Activity {



/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_whoami);

    Button bplay =(Button) findViewById(R.id.bplay);
     bplay.setOnClickListener(new View.OnClickListener() {



        @Override
        public void onClick(View arg0) {


            Random random = new Random();               
            random.nextInt(10);

                for (int i = 0; i < 5; i++);

                {

                    Intent newActivity1 = new Intent(Whoami.this,Question1.class);
                    startActivity(newActivity1);
                    finish();

                }
                {
                    Intent newActivity2 = new Intent(Whoami.this,Question2.class);     
                    startActivity(newActivity2);
                    finish();
                }
                {
                    Intent newActivity3 = new Intent(Whoami.this,Question3.class);     
                    startActivity(newActivity3);
                    finish();
                }
                {
                     Intent newActivity4 = new Intent(Whoami.this,Question4.class);     
                     startActivity(newActivity4);
                     finish();
                }
                {
                    Intent newActivity5 = new Intent(Whoami.this,Question5.class);     
                    startActivity(newActivity5);
                    finish();
                }
                {
                    Intent newActivity6 = new Intent(Whoami.this,Question6.class);     
                    startActivity(newActivity6);
                    finish();
                }
                {
                    Intent newActivity7 = new Intent(Whoami.this,Question7.class);     
                    startActivity(newActivity7);
                    finish();
                }
                {
                     Intent newActivity8 = new Intent(Whoami.this,Question8.class);     
                    startActivity(newActivity8);
                   finish();
                }
                {
                    Intent newActivity9 = new Intent(Whoami.this,Question9.class);     
                    startActivity(newActivity9);
                    finish();
                }
                {
                    Intent newActivity10 = new Intent(Whoami.this,Question10.class);     
                    startActivity(newActivity10);
                    finish();
                }
                Intent i = new Intent (Whoami.this, Score.class);
                startActivity(i);
                finish();
            }
     });
};

}

4

1 に答える 1

1

コンテンツをハードコードすることは決して良い考えではありません。質問は、言葉遣いの点でのみ異なると思います。コンストラクターで質問のインデックス (1 から 10 の間) を示す整数が渡される質問に対して 1 つのクラスを作成する必要があります。

現在のクラス「システム」にとどまり、 onClick メソッド内で次のようなことを行うことができます。

Random random = new Random();               
int questions = 10;
boolean used[] = new boolean[questions];
for (int i = 0; i < questions; i++) used[i] = false;

for (int i = 0; i < 5; i++) {
    int q;
    do { q = random.nextInt(questions); }
    while (used[q]);
    used[q] = true;

    Intent i = null;

    switch (q) {
    case 0: intent = new Intent(Whoami.this,Question1.class); break;
    case 1: intent = new Intent(Whoami.this,Question2.class); break;
    case 2: intent = new Intent(Whoami.this,Question3.class); break;
    case 3: intent = new Intent(Whoami.this,Question4.class); break;
    case 4: intent = new Intent(Whoami.this,Question5.class); break;
    case 5: intent = new Intent(Whoami.this,Question6.class); break;
    case 6: intent = new Intent(Whoami.this,Question7.class); break;
    case 7: intent = new Intent(Whoami.this,Question8.class); break;
    case 8: intent = new Intent(Whoami.this,Question9.class); break;
    case 9: intent = new Intent(Whoami.this,Question10.class); break;
    }

    startActivity(intent);
}

Intent i = new Intent (Whoami.this, Score.class);
startActivity(i);
finish();

また、すべての活動を一度に開始するのは悪い考えだと思います。むしろ、前のものが終了したときにそれらを開始してください。

于 2013-02-17T01:16:32.110 に答える