gpt4 book ai didi

java - Android::如何随机化我的测验问题?

转载 作者:行者123 更新时间:2023-11-30 02:04:42 25 4
gpt4 key购买 nike

我有一个测验应用程序,它显示了 SQLite Db 中的几个问题,它有 50 个问题,但它必须在游戏部分显示 5 个问题并将这些问题随机化。

我多次为解决方案感到疲倦,但一无所获:/

在源码中qid就是Db。基于显示问题和找到答案的ID主键。

这是 Activity :

package com.example.quiz;

import java.util.List;
import java.util.Random;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.DatabaseUtils;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class QuizActivity extends Activity {
private static final DbHelper remote = null;
List <Question> quesList;
int score = 0;

Question currentQ;
TextView txtQuestion;
RadioButton rda, rdb, rdc, rdd;
Button butNext;

int qid;
int qNumber = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
DbHelper db = new DbHelper(this);

quesList = db.getAllQuestions();
currentQ = quesList.get(qid);

txtQuestion = (TextView)findViewById(R.id.textView1);
rda = (RadioButton)findViewById(R.id.radio0);
rdb = (RadioButton)findViewById(R.id.radio1);
rdc = (RadioButton)findViewById(R.id.radio2);
rdd = (RadioButton)findViewById(R.id.radio3);
butNext = (Button)findViewById(R.id.button1);

setQuestionView();

butNext.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
RadioGroup grp=(RadioGroup)findViewById(R.id.radioGroup1);
RadioButton answer=(RadioButton)findViewById(grp.getCheckedRadioButtonId());

Log.d("yourans", currentQ.getANSWER()+" "+answer.getText());

if(currentQ.getANSWER().equals(answer.getText()))
{
score++;
Log.d("score", "Your score"+score);
}

if(qNumber < 5){

currentQ = quesList.get(qid);
setQuestionView();
}

else

{
Intent intent = new Intent(QuizActivity.this, ResultActivity.class);
Bundle b = new Bundle();
b.putInt("score", score); //Pontunk
intent.putExtras(b); //Pont tovább vivése a következő kérdéshez
startActivity(intent);
finish();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.quiz, menu);
return true;
}
private void setQuestionView()
{
txtQuestion.setText(currentQ.getQUESTION());
rda.setText(currentQ.getOPTA());
rdb.setText(currentQ.getOPTB());
rdc.setText(currentQ.getOPTC());
rdd.setText(currentQ.getOPTD());

Random rand = new Random();
for(int i=0; i<5;i++){
int r1 = rand.nextInt(50) + 1;
qid = r1;
}
qNumber++;
}
}

当 qNumber 的值大于 5 时,它重定向到 ResultsActivity。我测试了它,它的工作,显示了随机问题,但有时程序崩溃了。我哪里错了,为什么不能正常进行随机化?

感谢您的帮助,对不起我的英语知识!

最佳答案

您可以通过运行此查询来获取随机问题:

db.rawQuery("SELECT * FROM YOUR_TABLE ORDER BY RANDOM() LIMIT 5", null);

关于java - Android::如何随机化我的测验问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com