CheatActivity

import android.content.Context;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 CheatActivity extends AppCompatActivity {    private static final String EXTRA_ANSWER_IS_TRUE = "com.bignerdranch.android.geoquiz.answer_is_true";    private static final String EXTRA_ANSWER_SHOWN = "com.bignerdranch.android.geoquiz.answer_shown";    private boolean mAnswerisTrue;    private TextView mAnswerTextView;    private Button mShowAnswerButton;    public static Intent newIntent(Context packageContext,boolean answerisTrue){        Intent intent = new Intent(packageContext,CheatActivity.class);        intent.putExtra(EXTRA_ANSWER_IS_TRUE,answerisTrue);        return intent;    }    public static boolean wasAnswerShown(Intent intent){        return intent.getBooleanExtra(EXTRA_ANSWER_SHOWN,false);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_cheat);        mAnswerisTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE,false);        mAnswerTextView = (TextView) findViewById(R.id.answer_text_view);        mShowAnswerButton = (Button) findViewById(R.id.show_answer_button);        mShowAnswerButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(mAnswerisTrue){                    mAnswerTextView.setText(R.string.true_button);                }else{                    mAnswerTextView.setText(R.string.false_button);                }                setAnswerShownResult(true);            }        });    }    private void setAnswerShownResult(boolean isAnswerShown){        Intent data = new Intent();        data.putExtra(EXTRA_ANSWER_SHOWN,isAnswerShown);        setResult(RESULT_OK,data);    }}

Question

/** * Created by 13178 on 2018-3-21. */public class Question {    private int mTextResId;    private boolean mAnswerTrue;    public Question(int textResId ,boolean answerTrue){        mTextResId=textResId;        mAnswerTrue=answerTrue;    }    public int getTextResId() {        return mTextResId;    }    public void setTextResId(int textResId) {        mTextResId = textResId;    }    public boolean isAnswerTrue() {        return mAnswerTrue;    }    public void setAnswerTrue(boolean answerTrue) {        mAnswerTrue = answerTrue;    }}

QuizActivity

import android.app.Activity;import android.content.Intent;import android.media.Image;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.TextView;import android.widget.Toast;public class QuizActivity extends AppCompatActivity {    private static final int REQUEST_CODE_CHEAT = 0;    private static final String TAG ="QuizActivity";    private static final String KEY_INDEX = "index";    private Button mTruebutton;    private Button mFalsebutton;    private Button mPrevbutton;    private Button mNextbutton;    private Button mCheatbutton;    private TextView mQuestionTextView;    private Question[] mQuestionBank = new Question[]{            new Question(R.string.question_australia,true),            new Question(R.string.qusetion_oceans,true),            new Question(R.string.qusetion_mideast,false),            new Question(R.string.question_africa,false),            new Question(R.string.question_americas,true),            new Question(R.string.question_asia,true)    };    private int mCurrentIndex = 0;    private boolean mIsCheater;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.d(TAG,"onCreate(Bundle) called");        setContentView(R.layout.activity_quiz);        if(savedInstanceState!=null){            mCurrentIndex = savedInstanceState.getInt(KEY_INDEX,0);        }        mQuestionTextView = (TextView) findViewById(R.id.queston_text_view);        //int queston = mQuestionBank[mCurrentIndex].getTextResId();        //mQuestionTextView.setText(queston);        mQuestionTextView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mCurrentIndex=(mCurrentIndex+1) % mQuestionBank.length;                //int question = mQuestionBank[mCurrentIndex].getTextResId();                //mQuestionTextView.setText(question);                updateQuestion();            }        });        mTruebutton = (Button) findViewById(R.id.true_button);        mTruebutton.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                //Toast toast=Toast.makeText(QuizActivity.this,                //        R.string.correct_toast,                //        Toast.LENGTH_SHORT);                //toast.setGravity(Gravity.TOP,0,170);                //toast.show();                //dose nothing yet ,but soon.                checkAnswer(true);            }        });        mFalsebutton = (Button) findViewById(R.id.false_button);        mFalsebutton.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                /*Toast toast=Toast.makeText(QuizActivity.this,                        R.string.incorrect_toast,                        Toast.LENGTH_SHORT);                toast.setGravity(Gravity.TOP,0,170);                toast.show();                //dose nothing yet ,but soon.*/                checkAnswer(false);            }        });        mPrevbutton =(Button) findViewById(R.id.prev_button);        mPrevbutton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mCurrentIndex=(Math.abs(mCurrentIndex-1)) % mQuestionBank.length;                //int question = mQuestionBank[mCurrentIndex].getTextResId();                //mQuestionTextView.setText(question);                updateQuestion();            }        });        mNextbutton =(Button) findViewById(R.id.next_button);        mNextbutton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mCurrentIndex=(mCurrentIndex+1) % mQuestionBank.length;                //int question = mQuestionBank[mCurrentIndex].getTextResId();                //mQuestionTextView.setText(question);                mIsCheater = false;                updateQuestion();            }        });        mCheatbutton = (Button) findViewById(R.id.cheat_button);        mCheatbutton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //Intent intent = new Intent(QuizActivity.this, CheatActivity.class);                boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue();                Intent intent = CheatActivity.newIntent(QuizActivity.this,answerIsTrue);                startActivityForResult(intent,REQUEST_CODE_CHEAT);                //startActivity(intent);            }        });        updateQuestion();    }    @Override    protected void onActivityResult(int requestCode,int resultCode,Intent data){        if(resultCode != Activity.RESULT_OK){            return;        }        if(requestCode == REQUEST_CODE_CHEAT){            if(data==null){                return;            }            mIsCheater = CheatActivity.wasAnswerShown(data);        }    }    @Override    protected void onStart(){        super.onStart();        Log.d(TAG,"onStart() called");    }    @Override    protected void onResume(){        super.onResume();        Log.d(TAG,"onResume() called");    }    @Override    protected void onPause(){        super.onPause();        Log.d(TAG,"onPause() called");    }    @Override    public void onSaveInstanceState(Bundle savedInstanceState){        super.onSaveInstanceState(savedInstanceState);        Log.i(TAG,"onSaveInstanceState");        savedInstanceState.putInt(KEY_INDEX,mCurrentIndex);    }    @Override    protected void onStop(){        super.onStop();        Log.d(TAG,"onStop() called");    }    @Override    protected void onDestroy(){        super.onDestroy();        Log.d(TAG,"onDestroy() called");    }    private void updateQuestion(){        int question = mQuestionBank[mCurrentIndex].getTextResId();        mQuestionTextView.setText(question);    }    private void checkAnswer(boolean userPressedTrue){        boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue();        int messageResId = 0;        if(mIsCheater){            messageResId = R.string.judgment_toast;        }else {            if(userPressedTrue==answerIsTrue){                messageResId=R.string.correct_toast;            } else{                messageResId=R.string.incorrect_toast;            }        }        Toast.makeText(this,messageResId,Toast.LENGTH_LONG).show();    }}

activity_cheat.xml

<?xml version="1.0" encoding="utf-8"?>

activity_quiz.xml

<?xml version="1.0" encoding="utf-8"?>                

activity_quiz.xml横屏

                

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android开发环境 eclipse + android sdk
  2. android移动数据上网的开关的实现
  3. Android界面布局详解
  4. Android的UI组件之TextView、EditText
  5. 享受Android应用程序的Java技术盛宴
  6. Android开机启动流程
  7. android简单学习总结
  8. Android(安卓)LayoutInflater
  9. eclipse导入的Android项目没有android.ja
  10. Android解析XML-详尽