测验应用程序编程

时间:2016-04-24 01:23:22

标签: java android

我正在开发一个测验应用程序,我需要帮助为应用程序的测验部分编写代码。看到我有这个应用程序,我正在创建用户可以添加问题列表(真或假),然后进行测验。这个测验必须告诉用户他们是对还是错,然后是下一个按钮才能继续前进。我需要有关如何从用户输入的列表中获取问题并在测验中使用它的帮助。这是我到目前为止的代码....

import android.support.v4.app.Fragment;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.lang.reflect.Array;

public class QuizQuestionsActivity {
    private Button mTrueButton;
    private Button mFalseButton;
    private Button mNextButton;
    private Array mAnswerKey;
    private int mCurrentIndex;
    private static QuizQuestionsActivity mQuestion;

public class QuizActivity extends Activity {
    private void updateQuestion() {
        int question = mAnswerKey[mCurrentIndex].getQuestion();
        mQuestion.setText(question);
    }
    private void checkAnswer(boolean userPressedTrue) {
        boolean answerIsTrue = mQuestionBank[mCurrentIndex].isTrueQuestion();
        int messageResId = 0;
        if (userPressedTrue == answerIsTrue) {
            messageResId = R.string.correct_toast;
        } else {
            messageResId = R.string.incorrect_toast;
        }
        Toast.makeText(this, messageResId, Toast.LENGTH_SHORT)
                .show();
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.single_question);

        mQuestion = (TextView)findViewById(R.id.question);

        mTrueButton = (Button) findViewById(R.id.true_button);
        mTrueButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                checkAnswer(true);
            }
        });
        mFalseButton = (Button)findViewById(R.id.false_button);
        mFalseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                checkAnswer(false);

            }
        });

        mNextButton = (Button)findViewById(R.id.next_button);
        mNextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCurrentIndex = (mCurrentIndex + 1) % mAnswerKey.length;
                updateQuestion();
            }
        });
        updateQuestion();
    }
    /**
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_quiz, menu);
        return true;
    }
    */
}

}

1 个答案:

答案 0 :(得分:0)

您提供的代码仅用于参加测试的UI。所以我假设你需要帮助找出一个检查清单来完成你的程序:

1-您提到过,用户可以添加问题列表。如果您想在运行时获取并存储这些问题,则需要创建一个新的Activity来执行该操作

2-您有三个选项可用于存储问题答案对:

  • 在您认为合适的任何集合中HashMap。这将是一个本地的东西,不存储任何东西,所以如果应用程序被销毁,你需要再次插入你的问题和答案
  • 将数据存储在集合中,并将其作为JSON格式存储在SharedPreferences中。您可以将列表存储在onPause中,然后将其恢复为onResume,例如
  • 将您的数据存储在sqlite数据库中,这样可以提供更多灵活性,但需要更多代码

3-您需要从集合或数据库中检索问题答案对列表并实现逻辑(如随机)以显示问题(可能在您的updateQuestion()方法中)

4-检查答案的正确性并保留得分(?),这可以在checkAnswer()

中完成