我为question添加属性isAnswerd,判断是否答题,该值为1代表已经答过,为0代表没有答题,或者答错了,可以继续答题。
同样,将答题的结果存储在Bundle中,在oncreate方法中获取,
下面是部分涉及的源代码:
* 首先是在question实体类中添加相应属性:

public class Question{private int mTextResId;private boolean mAnswerTrue;private int isAnswerd;public Question(int textResId, boolean answerTrue) {mTextResId = textResId;mAnswerTrue = answerTrue;isAnswerd=0;}public int getTextResId() {return mTextResId;}public void setTextResId(int textResId) {mTextResId = textResId;}public boolean isAnswerTrue() {return mAnswerTrue;}public void setAnswerTrue(boolean answerTrue) {mAnswerTrue = answerTrue;}public int getIsAnswerd() {return isAnswerd;}public void setIsAnswerd(int isAnswerd) {this.isAnswerd = isAnswerd;}
}
  • 设置key值并在saveInstanceState方法中进行存储
private static String KEY_ANSWER="KEY_ANSWER";
@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);Log.d(TAG,"onSaveInstanceState() called");outState.putInt(KEY_INEX,mCurrentIndex);int[] answerList=new int[mQuestions.length];//存储是否已经答过该题的情况for(int i=0;i<answerList.length;i++){answerList[i]=mQuestions[i].getIsAnswerd();}outState.putIntArray(KEY_ANSWER,answerList);}
  • 在oncreate方法中获取答题情况
if(savedInstanceState!=null){mCurrentIndex=savedInstanceState.getInt(KEY_INEX,0);int[] answerList=savedInstanceState.getIntArray(KEY_ANSWER);for(int i=0;i<mQuestions.length;i++){mQuestions[I].setIsAnswerd(answerList[I]);//将答题情况存储在question中}}
  • 在判断正误的时候设置inanswered值,回答正确设置为1,回答错误设置为0,代表可以继续答题
private void checkAnswer(boolean userResult){boolean questionresult=mQuestions[mCurrentIndex].isAnswerTrue();int textResId=0;if(userResult==questionresult){mQuestions[mCurrentIndex].setIsAnswerd(1);textResId=R.string.correct_toast;}else{mQuestions[mCurrentIndex].setIsAnswerd(0);textResId=R.string.incorrect_toast;}ButtonEnabled();Toast.makeText(this, textResId, Toast.LENGTH_SHORT).show();}
 private void update(){int question=mQuestions[mCurrentIndex].getTextResId();mQuestion_text.setText(question);ButtonEnabled();}

注意这两个地方都要使用,通过每次index变化都要判断一次,否则保留的状态就是原先的状态,就会出现即使没有答过这道题也不能作答的情况

  • 设置button是否可以点击ButtonEnabled()方法
    public void ButtonEnabled(){if(mQuestions[mCurrentIndex].getIsAnswerd()>0){true_btn.setEnabled(false);false_btn.setEnabled(false);}else{true_btn.setEnabled(true);false_btn.setEnabled(true);}}

挑战练习---禁止一题多答(3.7)(Android编程权威指南)相关推荐

  1. 挑战练习:禁止一题多答(三)(基于Android编程权威指南)

    本文同样是基于Android编程权威指南一书中的程序进行修改,而禁止一题多答的具体内容是:用户答完某道题,就禁掉那道题对应的按钮,防止用户一题多答. 我的思路是:先把公共的代码写进Question.j ...

  2. Android编程权威指南3.7挑战练习:禁止一题多答

    目标:用户答完某道题,就禁掉那道题对应的按钮,防止用户一题多答. 在此之前,创建一个Question类的时候,已经有了两个属性. private int mTextResId;private bool ...

  3. Android编程权威指南第3版 9.5 挑战练习:日期格式化

    转载请注明出处 目录 前言 1. 添加资源 2. Crime.java 3. CrimeActivity.java 4. CrimeFragment.java 5. CrimeLab.java 6. ...

  4. android练习之为GeoQuiz禁止一题多答

    挑战练习:禁止一题多答 用户答完某道题,就禁掉那道题对应的按钮,防止用户一题多答. 用户答完全部题后,显示一个toast消息,给出百分比形式的评分. (问题:直接用小数在logcat里表示分数结果,横 ...

  5. 我敢打赌,这是98%的程序员都想挑战的算法趣题!

    计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...

  6. 浙江省计算机网络技术比赛,[2018年最新整理]0509浙江省三级计算机网络技术历年真题(含答桉).doc...

    [2018年最新整理]0509浙江省三级计算机网络技术历年真题(含答桉) 2005年秋浙江省高校 计算机等级考试试卷(三级网络技术) 说明:(1)考生应将一至题的答案涂写在答题卡上,将第题答案写在答卷 ...

  7. 北航计算机2014复试上机题,北航计算机系考研复试上机真题及答

    北航计算机系考研复试上机真题及答 (29页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Kao400.com 出品 侵权必究 北京航空航 ...

  8. 2011年成都信息工程学院第二季极客大挑战逆向第三题Game破文

    [文章标题]: 2011年成都信息工程学院第二季极客大挑战逆向第三题Game破文 [文章作者]: JoyChou [软件名称]: Game [软件大小]: 176KB [下载地址]: http://w ...

  9. 北航计算机学院上机试题,北航计算机系考研复试上机真题及答.pdf

    北航计算机系考研复试上机真题及答.pdf K 出品 侵权必究 北京航空航天大学计算机系考研 复试 06-12 上机真题及答案 复试上机指导 1. 本真题只是供辅助作用,关键还是研友平时动手能力练 习和 ...

最新文章

  1. JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库
  2. android getevent参数,android getevent、sendevent、input keyevent 使用说明
  3. 我的SQL SERVER数据库会装满吗?
  4. LeetCode的二分查找的练习部分总结
  5. 如何解决ArrayAdapter requires the resource ID to be a TextView
  6. C语言将20个数从小到大排列,现在我想实现这个20个数从小到大排序(冒泡排序),不知道代码如何写。...
  7. PCA(主成分分析)和FA(因子分析)区别
  8. 【结巴分词】浅谈结巴分词算法原理
  9. R及RStudio下载安装教程(超详细)
  10. 位图(标量图)与矢量图区别
  11. linux开发板挂载
  12. 24小时改变你的人生 (1至12小时)很好的书,推荐大家有时间在网上看看。
  13. word,wps设置页眉和页码
  14. Ubuntu桌面图标无法打开终端的解决过程
  15. 被夸大的伊朗“Twitter革命”
  16. 昨日种种,昨日死.今日种种,今日生.--看了几篇影评有感
  17. 2017蓝桥杯B组国赛 瓷砖样式
  18. php中base64加密的应用场景
  19. u盘制作启动盘后空间容量变小解决方法
  20. python提取身份证信息_Python selenium 身份证信息在线解析爬取

热门文章

  1. 编程查杀ttdianying流氓软件
  2. HTML技巧-嵌入QQ+MSN+淘宝旺旺+Gtalk快速对话框官方代码的方
  3. 七层百货商场无线覆盖解决方案
  4. leetcode 23. 合并K个排序链表
  5. 计算机类下的细分学科的大二课程
  6. Linux内核编译之修改内核版本号
  7. cookiejar包_cookiejar的用法
  8. 视频教程-Spark实战教程-Spark
  9. -- 45、查询选修了全部课程的学生信息
  10. 2021年,有哪些堪称神器的Python工具包?