Android编程权威指南-第一章挑战练习二:添加后退按钮

QuizActivity.java

package com.onevol.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.example.geoquiz.R;

public class QuizActivity extends Activity {

    private Button mTureButton;
    private Button mFalseButton;
    private Button mPrevButton;
    private Button mNextButton;
    private TextView mQuestionTextView;
    private TrueFalse[] mQuestionBank = new TrueFalse[] {
            new TrueFalse(R.string.question_africa, false),
            new TrueFalse(R.string.question_americas, true),
            new TrueFalse(R.string.question_asia, true),
            new TrueFalse(R.string.question_mideast, false),
            new TrueFalse(R.string.question_oceans, true),
    };
    private int mCurrectIndex = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_quiz);

        mTureButton = (Button) findViewById(R.id.ture_button);
        mFalseButton = (Button) findViewById(R.id.false_button);
        mPrevButton = (Button) findViewById(R.id.prev_button);
        mNextButton = (Button) findViewById(R.id.next_button);

        mQuestionTextView = (TextView) findViewById(R.id.question_text);
        updateQuestion();

        mTureButton.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
//              Toast.makeText(QuizActivity.this, "Incorrect", Toast.LENGTH_SHORT).show();
                checkAnswer(true);
            }
        });
        mFalseButton.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
//              Toast.makeText(QuizActivity.this, "Correct", Toast.LENGTH_SHORT).show();
                checkAnswer(false);
            }
        });
        mPrevButton.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(mCurrectIndex == 0){
                    int question = mQuestionBank[mQuestionBank.length -1].getQuestion();//如果数组指针为0时,将指针设为长度减去1,才能在第一个问题后退到第五个问题。
                    mQuestionTextView.setText(question);
                    mCurrectIndex = 4;//减一为4.
                } else{
                    mCurrectIndex = (mCurrectIndex -1);//如果不为0,则指针就减去1.
                    updateQuestion();
                }
            }

        });
        mNextButton.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mCurrectIndex = (mCurrectIndex + 1) % mQuestionBank.length;
                updateQuestion();
            }

        });
        mQuestionTextView.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mCurrectIndex = (mCurrectIndex + 1) % mQuestionBank.length;
                updateQuestion();
            }

        });
    }

    private void updateQuestion() {
        int question = mQuestionBank[mCurrectIndex].getQuestion();
        mQuestionTextView.setText(question);
    }

    private void checkAnswer (boolean userPressedTrue){
        boolean answerIsTrue = mQuestionBank[mCurrectIndex].isTrueQuestion();
        if(userPressedTrue == answerIsTrue){
            Toast.makeText(this, "Correct", Toast.LENGTH_SHORT).show();
        } else{
            Toast.makeText(this, "Incorrect", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        return super.onCreateOptionsMenu(menu);
    }

}

activity_quiz.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
>

    <TextView 
        android:id="@+id/question_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="24dp"
        />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button 
            android:id="@+id/ture_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/true_button"/>
        <Button 
            android:id="@+id/false_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/false_button"/>
    LinearLayout>
    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button 
            android:id="@+id/prev_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/prev_button"
            android:drawableLeft="@drawable/arrow_left"
            android:drawablePadding="4dp"/>
            
        <Button 
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/next_button"
            android:drawableRight="@drawable/arrow_right"
            android:drawablePadding="4dp"/>
    LinearLayout>

LinearLayout>

你可能感兴趣的:(练习)