Android-GeoQuiz
16lz
2021-01-25
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横屏
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer