![]()
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Android应用开发技术
Android应 用 开 发 技 术 ( 综 合 实 验 报 告 )
0 项 目 评 分 表 (含 代 码 清 单 ) (请 各 位 同 学 在 “学 生 自 评 ”一 列 中 对 照 评 分 点 , 自 己 先 打 一 个 分 。 务 必 有 自 评 分 )
XML文 件 清 单 (类 似 下 表 , 在 自 动 生 成 基 础 上 , 改 动 过 的 xml都 列 出 ):
Java文 件 清 单 :
1 项 目 设 计 背 景 由 于 手 机 的 使 用 成 本 越 来 越 低 , 许 多 小 学 生 也 拥 有 手 机 , 并 且 花 费 大 量 时 间 在 玩 手 机 游 戏 上 面 。 为 了 让 小 学 生 在 手 机 上 也 能 达 到 学 习 的 效 果 , 设 计 了 该 款 两 位 数 加 减 法 计 算 app, 可 以 让 小 学 生 在 玩 手 机 时 培 养 自 己 的 两 位 数 计 算 能 力 。 此 app主 要 提 供 题 目 的 展 示 , 答 案 输 入 , 题 目 切 换 以 及 查 看 结 果 的 功 能 。
2 项 目 设 计 思 路 2. 1 分 析 小 学 生 计 算 能 力 , 主 要 包 括 两 位 数 的 加 减 法 (不 包 括 减 数 大 于 被 减 数 的 情 况 ) 2. 2 设 计 界 面 布 局 , 每 一 次 提 供 五 道 算 术 题 , 并 且 可 以 切 换 加 减 法 和 当 前 题 目 , 以 及 输 入 答 案 框 , 和 查 看 计 算 结 果 。 2. 3 设 计 程 序 逻 辑 : 2. 3. 1: 加 载 所 有 的 控 件 2. 3. 2: 初 始 化 题 目 数 据 2. 3. 3: 初 始 化 答 案 编 辑 框 监 听 事 件 2. 3. 4: 初 始 化 切 换 题 目 按 钮 事 件 2. 3. 5: 初 始 化 答 案 检 测 事 件
3 项 目 具 体 实 现 3. 1 Java源 文 件 清 单 进 入 自 己 的 项 目 的 src文 件 夹 , 使 用 tree命 令 , 然 后 截 图 。 图 3. 1项 目 文 件 目 录 树 3. 2 项 目 编 译 通 过 截 图 在 Android Studio中 , 确 保 项 目 编 译 通 过 , 显 示 0错 误 0警 告 的 界 面 下 截 图 。 截 图 要 求 : 在 项 目 中 , 打 开 自 己 的 一 个 java源 文 件 , 之 后 进 行 编 译 , 确 保 截 图 中 含 有 0errors, 0 warnings信 息 。 图 3. 2源 代 码 以 及 遍 历 结 果
3. 3 核 心 代 码 此 处 给 出 你 认 为 比 较 重 要 的 、 核 心 的 代 码 。
3. 3. 1题 目 1的 初 始 化 , 其 他 题 目 类 似 : if ( add1. isChecked()){ //判 断 是 否 是 加 法 test1_2. setText( " +" ); test1_1. setText( " " +randomNumber());
3. 3. 2 结 果 检 查 监 听 器 if ( isAnswered1 ){ //判 断 该 题 是 否 回 答 , 通 过 编 辑 框 值 改 变 监 听 器int answer = 0; //计 算 answer if ( add1. isChecked()){ answer = Integer. parseInt( test1_1. getText(). toString()) +Integer. parseInt( test1_3. getText(). toString()); } else { answer = Integer. parseInt( test1_1. getText(). toString())-Integer. parseInt( test1_3. getText(). toString()); } //判 断 结 果 , 并 提 示 if (answer == Integer. parseInt( test1_4. getText(). toString())){ Toast. makeText(getApplicationContext(), " 恭 喜 你 , 回 答 正 确 。 ", Toast. LENGTH_LONG ). show(); } else { Toast. makeText(getApplicationContext(), " 有 点 可 惜 , 回 答 错 误 , 请 再 接 再 厉 。 正 确 的 答 案 是 : " +answer, Toast. LENGTH_LONG ). show(); } } else { Toast. makeText(getApplicationContext(), " 请 先 作 答 此 题 目 , 再 查 看 评 分 ", Toast. LENGTH_LONG ). show(); }
3. 3. 3 切 换 题 目 监 听 器 //生 成 对 话 框 AlertDialog. Builder alertDialog = new AlertDialog. Builder(MainActivity. this );alertDialog. setTitle( " 提 示 " ); alertDialog. setMessage( " 该 题 目 还 未 作 答 , 是 否 要 切 换 题 目 ? " ); alertDialog. setPositiveButton( " 切 换 ", new PostiveListener()); alertDialog. setNegativeButton( " 继 续 作 答 ", new NegativeListener()); alertDialog. create(); if (view == btn1_1 ){ currentTest = 1; //如 果 已 经 作 答 就 直 接 切 换 if ( isAnswered1 ){ compute1(); } else {//否 则 展 示 对 话 框 , 在 PostiveListener中 调 用 compute()初 始 化 题 目 alertDialog. show(); } }
4 项 目 效 果
图 4. 1 初 始 化 界 面 图 4. 2切 换 题 目 弹 框
图 4. 2 未 作 答 查 看 评 分 提 示 图 4. 3回 答 正 确 查 看 评 分 提 示 图 4. 3 回 答 错 误 查 看 评 分 提 示 5 心 得 体 会 通 过 本 项 目 使 我 学 习 了 更 多 关 于 按 钮 , 编 辑 框 , 文 本 框 的 使 用 , 以 及 线 性 布 局 的 嵌 套 以 及 布 局 的 实 现 。 对 按 钮 , 编 辑 框 , 文 本 框 的 事 件 注 册 有 了 更 深 刻 的 认 识 。 对 对 话 框 , 以 及 提 示 的 使 用 更 熟 悉 , 比 如 填 写 的 参 数 。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|