【问题标题】:How to randomize my Questions using this code?如何使用此代码随机化我的问题?
【发布时间】:2016-04-06 10:21:19
【问题描述】:

这段代码是我用来制作测验应用程序的...但问题是我不知道如何让它随机化或随机播放。我不知道要改变什么让它洗牌你们能帮我吗?

package org.intercode.lifeatceu;

import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class levelone extends AppCompatActivity {
TextView tv1, tvCred, tvQuestion;
Button btNext;
RadioButton rb1, rb2;
RadioGroup rg;

String questions [] = {"Ma. Cristina D. Padolina is CEU's President", "Carlito B. Olaer is the V.P of CEU", "CEU's VISION is to sting every enemy", "One of CEU's Mission is to promote creative and scholarly academic"};
String answer [] = {"True", "False", "False", "True"};


int flag = 0;
public static int score, correct, wrong, coins;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_levelone);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    Intent inquiz = getIntent();
   final int credit = inquiz.getIntExtra("passedCredits", 0);
    String TotalCoins = String.valueOf(credit);

    tv1 = (TextView) findViewById(R.id.tv1);
    tvCred = (TextView) findViewById(R.id.tvCred);
    tvQuestion = (TextView) findViewById(R.id.tvQuestion);
    rb1 = (RadioButton) findViewById(R.id.rb1);
    rb2 = (RadioButton) findViewById(R.id.rb2);
    rg = (RadioGroup) findViewById(R.id.rg);
    btNext = (Button) findViewById(R.id.btNext);


    tvQuestion.setText(questions[flag]);
    tvCred.setText(TotalCoins);

    btNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RadioButton uans = (RadioButton) findViewById(rg.getCheckedRadioButtonId());
            String ansText = uans.getText().toString();
            if (ansText.equalsIgnoreCase(answer[flag]))
            {
                correct++;
                coins++;

            }
            else
            {
                wrong++;
            }
            flag++;
            if (flag < questions.length)
            {
                tvQuestion.setText(questions[flag]);
            }
            else
            {
                score = correct;
                Intent in = new Intent(getApplicationContext(), Results.class);
                in.putExtra("passedCredits",credit);
                in.putExtra("passedCorrect",correct);
                in.putExtra("passedWrong",wrong);
                in.putExtra("passedCoins",coins);
                in.putExtra("passedScore",score);
                startActivity(in);
            }

        }
    });
}

}

【问题讨论】:

标签: android


【解决方案1】:

nathan Tuggy 给出的 HashMap 链接实际上是完成你想要的东西的好方法,但我认为你不熟悉这种语言..

您如何使用排序机制在应用程序的每次启动时更改问题的队列位置,想法是这样的..(记住不要只是复制粘贴此代码,根据需要更改和添加变量)

for (int i = 0; i < 10; i++) {
  String Qtemp;
  String Atemp;
  int switch;
  Random c = new Random();
  Random d = new Random();

        flag= c.nextInt(question.length);
        switch = d.nextInt(question.length);

   Qtemp= question[c]
   Atemp = answer[c]
   question[c] = question[switch];
   answer[c] = answer[switch];
  question[switch] = Qtemp;
  answer[switch] = Atemp; }

想法就是这样,只需尝试在函数中创建并调用它,以便您的问题在应用程序开始时随机播放。

我真的不推荐这种方式,因为它不是正确的方式,但在你的情况下,我只是想告诉你“任何”方式来改变问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多