美文网首页
对GeoQuiz项目功能和实现的分析

对GeoQuiz项目功能和实现的分析

作者: 圈圈_勿忘初心 | 来源:发表于2017-03-22 19:51 被阅读0次

    GeoQuiz主要功能是:

    1. 用户通过点击“正确”或“错误”按钮回答屏幕上显示的判断题,并根据Toast出的信息检查自己的答案是否正确;
    2. 通过点击“上一题”或“下一题”切换题目;
    3. 该应用还提供了作弊功能,当用户点击“作弊”按钮时,应用会告诉你正确答案,但通过作弊手段得到正确答案的题目将在用户回答该问题时Toast出“作弊是不对的”的信息;

    一、 答题界面的activity和它的布局介绍

    1、引用资源

    图片资源作为切换题目按钮的资源,保存于res/drawable中
    字符串资源用来保存题目的内容等,保存于res/values/strings.xml中

    2、答题界面的布局

    图1 图2

    图1对应的XML被放在res/layout文件夹中,图2对应的XML被放在res/layout-land文件夹中,这两个XML的名称相同,它们只是不同方向布局的不同呈现。

    所有带layout前缀的属性,它都表示该控件相对于它的父控件的位置,而不带layout的属性则表示该控件自身的内容相对于该控件的位置。

    3、控制答题界面的activity(主activity)

    • 保存题目的TrueFalse类
      首先,我们需要一个能保存每一道题目信息的类,该类就是一个简单的DTO对象,包含三个成员变量,分别用于存储题目、答案、用户是否做过弊

    • QuizActivity类(主activity)
      UI控件中的AlertDialog:AlertDialog用到了所谓的建造者(Builder)模式。对话框是一个可以高度定制的UI控件,我们可以设置它的抬头,背景,标题,子标题,内容,确定和取消的按钮等,若用常规的初始化方法将dialog初始化,那构造函数的参数就得写上好几行,而且有些内容可设可不设,那么就要重载N多个构造方法,所以不妨对dialog的每一部分都设置一个方法,这样就可以有选择的构造每一部分,构造方法也不必是好几行了。
      onSaveInstanceState(),这个方法和activity的生命周期有关:在一个activity实例被销毁之前,都要回调onPause()、onStop()、onDestory()方法,因为系统一般不会销毁正在onResume的activity,而可能会回收处于暂停或停止状态的activity对象,所以onSaveInstanceState()方法被回调的时刻有可能是在onPause()被调用之后,或者onStop()被调用之后。

    二、 作弊界面的activity和它的布局介绍

    1、布局介绍

    图3

    2、作弊界面的activity

    该activity接收主activity传过来的答案信息,同时通过setResult()的bundle携带“用户是否触发了作弊按钮”信息回传给主activity

    相关文章

      网友评论

          本文标题:对GeoQuiz项目功能和实现的分析

          本文链接:https://www.haomeiwen.com/subject/yjqanttx.html