Android

Android学习笔记(三)

本篇讲解Android权威编程指南中第三章的挑战练习!

禁止一题多答

用户答完某道题,就禁掉那道题对应的按钮,防止用户一题多答。

按钮禁用

首先,我们要保存某个问题当前是否被答过。在Question中定义一个变量。并创建setter和getter方法,初始值是false表示未答过。

image 84

然后在MainActivity中定义一个检查是否被答过的方法,如果答过这道题设置按钮不能再按。

image 85

之后在checkAnswer和 updateQuestion方法中添加此方法。checkAnswer中添加可实现当点击按钮后,显示答案后直接禁用按钮,防止更改答案。updateQuestion方法可实现切换问题后检测是否已经答过。

image 86

这里也需要注意,updateQuestion方法在mainActivity中必须放在按键初始化id之后,否则会接收到此异常(别问我怎么知道的/(ㄒoㄒ)/~~)

'void android.widget.Button.setEnabled(boolean)' on a null object reference
image 90

显示效果

01

存储数据

要存储数据,因为当屏幕旋转时,原来的Activity被Destory。所以要将数据存储下来,当再次Create的时候可以保存历史记录。

新建一个键值对

image 91

然后将答案的信息映射上去

image 92

最后添加一下读取的逻辑,正好我们之前写过检测状态。

image 93

这道题就完成了!

评分

用户答完全部题后,显示一个toast消息,给出百分比形式的评分。

首先创建一个变量,保存当前答对的题目数

private int mCurrentIndex = 0;

在Activity中添加展示分数方法

image 94

最后再去True false next 按钮的监听下添加调用此方法

image 95

完成了!!

实现的效果:

02

发表评论