Java Android studio问答应用程序显示每个科目的分数
我的逻辑和代码有问题 大家好,我正计划创建一个测试真或假的应用程序,我已经做了,但我的问题是,我想显示每个主题的分数,问题是随机的,分组在一个数组中,我怎么可能做到呢? 如何显示每个科目的分数,例如数学=2,科学=0,英语5 随机问题采用字符串格式 谢谢你的回答。祝大家今天愉快Java Android studio问答应用程序显示每个科目的分数,java,android,android-studio,Java,Android,Android Studio,我的逻辑和代码有问题 大家好,我正计划创建一个测试真或假的应用程序,我已经做了,但我的问题是,我想显示每个主题的分数,问题是随机的,分组在一个数组中,我怎么可能做到呢? 如何显示每个科目的分数,例如数学=2,科学=0,英语5 随机问题采用字符串格式 谢谢你的回答。祝大家今天愉快 **this is the code for quiz question** import android.content.DialogInterface; import android.content.Intent;
**this is the code for quiz question**
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class QuizActivity extends AppCompatActivity {
private TextView mScoreView, mQuestion;
private ImageView mImageView;
private Button mTrueButton, mFalseButton;
private boolean mAnswer;
private int mScore = 0;
private int mQuestionNumber = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
mScoreView = (TextView)findViewById(R.id.points);
mImageView = (ImageView)findViewById(R.id.imageView);
mQuestion = (TextView)findViewById(R.id.question);
mTrueButton = (Button) findViewById(R.id.trueButton);
mFalseButton = (Button) findViewById(R.id.falseButton);
showRandomQuestion();
updateQuestion();
//Logic for true button
mTrueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mAnswer == true) {
mScore++;
updateScore(mScore);
//perform check before you update the question
if (mQuestionNumber == quizarray.length) {
Intent i = new Intent(QuizActivity.this, ResultsActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("finalScore", mScore);
i.putExtras(bundle);
QuizActivity.this.finish();
startActivity(i);
}else{
updateQuestion();
}
}
else {
if (mQuestionNumber ==quizarray.length) {
Intent i = new Intent(QuizActivity.this, ResultsActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("finalScore", mScore);
i.putExtras(bundle);
QuizActivity.this.finish();
startActivity(i);
}else{
updateQuestion();
}
}
}
});
//Logic for false button
mFalseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mAnswer == false) {
mScore++;
updateScore(mScore);
//perform check before you update the question
if (mQuestionNumber == quizarray.length) {
Intent i = new Intent(QuizActivity.this, ResultsActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("finalScore", mScore);
i.putExtras(bundle);
QuizActivity.this.finish();
startActivity(i);
}else{
updateQuestion();
}
}
else {
if (mQuestionNumber == quizarray.length) {
Intent i = new Intent(QuizActivity.this, ResultsActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("finalScore", mScore);
i.putExtras(bundle);
QuizActivity.this.finish();
startActivity(i);
}else{
updateQuestion();
}
}
}
});
}
private void updateQuestion() {
showRandomQuestion();
mAnswer = QuizBook.answers[mQuestionNumber];
mQuestionNumber++;
}
private void updateScore(int point) {
mScoreView.setText("" + mScore);
}
public void clickExit(View view) {
askToClose();
}
@Override
public void onBackPressed() {
askToClose();
}
private void askToClose (){
AlertDialog.Builder builder = new AlertDialog.Builder(QuizActivity.this);
builder.setMessage("Are you sure you want to quit?");
builder.setCancelable(true);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
finish();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
public void showRandomQuestion(){
shufflequestions();
mImageView.setImageResource(quizarray[0].getmImage());
mQuestion.setText(quizarray[0].getmFact());
mAnswer =QuizBook.answers[mQuestionNumber];
}**Array for questions**
QuizBook f1 = new QuizBook(R.drawable.una, "Science");
QuizBook f2 = new QuizBook(R.drawable.una, "Science");
QuizBook f3 = new QuizBook(R.drawable.una, "Math question");
QuizBook f4 = new QuizBook(R.drawable.una, "Math question");
QuizBook f5 = new QuizBook(R.drawable.una, "Math question");
QuizBook f6 = new QuizBook(R.drawable.una, "Math question");
QuizBook f7 = new QuizBook(R.drawable.una, "Math question");
QuizBook f8 = new QuizBook(R.drawable.una, "Math question");
QuizBook f9 = new QuizBook(R.drawable.una, "English question");
QuizBook f10 = new QuizBook(R.drawable.una, "English question");
QuizBook f11 = new QuizBook(R.drawable.una, "English question");
QuizBook f12 = new QuizBook(R.drawable.una, "English question");
QuizBook f13 = new QuizBook(R.drawable.una, "English question");
QuizBook f14 = new QuizBook(R.drawable.una, "English question");
QuizBook f15 = new QuizBook(R.drawable.una, "English question");
QuizBook f16 = new QuizBook(R.drawable.una, "English question");
QuizBook f17 = new QuizBook(R.drawable.una, "English question");
QuizBook[] quizarray = new QuizBook[]{
f1 ,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17
};
public void shufflequestions(){
Collections.shuffle(Arrays.asList(quizarray));
}
}
**here is my code for the result it only shows passed or fail i want to show the score per subject thank you**
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class ResultsActivity extends AppCompatActivity {
TextView mGrade, mFinalScore;
Button mRetryButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results);
mGrade = (TextView) findViewById(R.id.grade);
mRetryButton = (Button)findViewById(R.id.retry);
mGrade = (TextView)findViewById(R.id.grade);
mRetryButton = (Button)findViewById(R.id.retry);
Bundle bundle = getIntent().getExtras();
int score = bundle.getInt("finalScore");
if (score >= 10){
mGrade.setText("You are passed");
}
else{
mGrade.setText("try to review next time");
}
mRetryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(ResultsActivity.this, QuizActivity.class));
ResultsActivity.this.finish();
}
});
}
}
这是quizbook类的代码
public class QuizBook {
private int mImage;
private String mFact;
private int mImage1;
private String mFact1;
public QuizBook (int mImage, String mFact) {
this.mImage = mImage;
this.mFact = mFact;
}
public int getmImage(){
return mImage;
}
public String getmFact(){
return mFact;
}
public static boolean[] answers = new boolean[]{
true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true
};
}
switch (question.getSubject) {
case "math":
mathScore++;
break;
case "math":
mathScore++;
break;
}
谢谢,兄弟,我试试看,兄弟,我应该改变结构吗?你是说奎茨本吗?我看不到,但我想没有。你只需要得到第二个字符串值(主题)伴侣,你能帮我吗,你能给我一个样本吗?我真的非常感谢你的帮助,我很抱歉作为一个新手,我在QuizBook课堂上的表现如何。