一步步来做GeoQuiz之8月3日更新

2016-08-03  本文已影响23人  nbpzjy

2016.8.3完成第二章,总体讲,扩展了GeoQuiz的问题数量,采用Strings手动创建;创建一个类来作为Question类,实现构造方法,getter和setter方法;修改Layout文件,增加上一题下一题的按钮;MainActivity中代码更新,采用封装公用代码做一个updateQuestion()更新上一题下一题时的问题显示,新建一个方法checkAnswers()方法来检验用户点击正确与否,并toast一个信息。

第二章完成的界面图

Question类,参数有两个

public class Question {

    private int mTextResId;
    private boolean mAnswerTrue;

    //构造方法
    public Question(int textResId, boolean answerTrue) {
        mTextResId = textResId;
        mAnswerTrue = answerTrue;
    }

    //Geter and setter方法
    public int getTextResId() {
        return mTextResId;
    }

    public void setTextResId(int textResId) {
        mTextResId = textResId;
    }

    public boolean isAnswerTrue() {
        return mAnswerTrue;
    }

    public void setAnswerTrue(boolean answerTrue) {
        mAnswerTrue = answerTrue;
    }
}

公用代码封装方法

 //封装显示问题的公用代码
    private void updateQuestion(){

        int question = mQuestionsBank[mCurrentIndex].getTextResId();
        mTextViewShowQuestion.setText(question);

    }

引用直接updateQuestion()即可

mNextbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCurrentIndex = (mCurrentIndex+1) % mQuestionsBank.length;

                //调用updateQuestion()显示点击下一题之后的问题内容
                updateQuestion();
            }
        });

判断用户选择正确与否的方法checkAnswer()


 //判断点击是不是正确
    private void checkAnswer(boolean userPressedTrue){
        boolean answerIsTrue = mQuestionsBank[mCurrentIndex].isAnswerTrue();

        int messageResId = 0;

        if (userPressedTrue == answerIsTrue){
            messageResId = R.string.toast_correct;
        } else {
            messageResId = R.string.toast_wrong;
        }

        Toast.makeText(MainActivity.this,messageResId,Toast.LENGTH_SHORT).show();
    }


上一篇下一篇

猜你喜欢

热点阅读