Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android studio问答应用程序显示每个科目的分数_Java_Android_Android Studio - Fatal编程技术网

Java Android studio问答应用程序显示每个科目的分数

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;

我的逻辑和代码有问题

大家好,我正计划创建一个测试真或假的应用程序,我已经做了,但我的问题是,我想显示每个主题的分数,问题是随机的,分组在一个数组中,我怎么可能做到呢? 如何显示每个科目的分数,例如数学=2,科学=0,英语5 随机问题采用字符串格式 谢谢你的回答。祝大家今天愉快

**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
    };

}
  • 按主题制作计数器

    私有整数mathScore=0; 私人智力科学分数=0

  • 当你增加|减少分数时,像这样检查对象

     switch (question.getSubject) {
         case "math":
             mathScore++;
             break;
         case "math":
             mathScore++;
             break;
     }
    

  • 谢谢,兄弟,我试试看,兄弟,我应该改变结构吗?你是说奎茨本吗?我看不到,但我想没有。你只需要得到第二个字符串值(主题)伴侣,你能帮我吗,你能给我一个样本吗?我真的非常感谢你的帮助,我很抱歉作为一个新手,我在QuizBook课堂上的表现如何。