首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >测验应用程序编程

测验应用程序编程
EN

Stack Overflow用户
提问于 2016-04-24 09:23:22
回答 1查看 588关注 0票数 0

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

代码语言:javascript
运行
复制
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;
    }
    */
}

}

EN

回答 1

Stack Overflow用户

发布于 2016-04-24 14:05:46

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

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

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

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

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

4-检查答案的正确性并记分(?)这可以在你的checkAnswer()中完成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36818282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档