如何在 Android 问答游戏中高亮正确答案(绿色)与错误答案(红色)

雨辰吖_8314

雨辰吖_8314

2026-07-06

921人浏览

原创

如何在 Android 问答游戏中高亮正确答案(绿色)与错误答案(红色)

本文详解如何在用户选择错误答案后,同时将所选按钮设为红色、并将唯一正确答案按钮设为绿色,提升 quiz 游戏的反馈体验。

本文详解如何在用户选择错误答案后,同时将所选按钮设为红色、并将唯一正确答案按钮设为绿色,提升 quiz 游戏的反馈体验。

在当前的 answerSelected() 方法中,代码仅对用户点击的按钮进行颜色修改(正确时绿色,错误时红色),但未定位并高亮正确答案对应的按钮——而这正是实现“错题即时反馈”的关键。要解决这个问题,核心思路是:在用户点击后,遍历四个按钮,比对各自文本与当前题目的正确答案,对匹配项单独设为绿色,同时保留错误选项的红色状态。

以下是优化后的 answerSelected() 方法完整实现(已适配您现有代码结构,无需重构为 Question 模型类):

public void answerSelected(View view) {
    // 禁用所有按钮,防止重复点击
    btn1.setEnabled(false);
    btn2.setEnabled(false);
    btn3.setEnabled(false);
    btn4.setEnabled(false);
    countDownTimer.cancel();

    String selectedAnswer = ((Button) view).getText().toString().trim();
    String correctAnswer = techList.get(index);

    // 重置所有按钮背景为默认蓝色(可选,增强视觉一致性)
    btn1.setBackgroundColor(Color.parseColor("#2196F3"));
    btn2.setBackgroundColor(Color.parseColor("#2196F3"));
    btn3.setBackgroundColor(Color.parseColor("#2196F3"));
    btn4.setBackgroundColor(Color.parseColor("#2196F3"));

    if (selectedAnswer.equals(correctAnswer)) {
        // 正确:仅高亮当前按钮为绿色
        view.setBackgroundColor(Color.parseColor("#4CAF50"));
        points++;
        tvPoints.setText(points + " / " + techList.size());
        tvResult.setText("Doğru");
    } else {
        // 错误:当前按钮变红 + 正确答案按钮变绿
        view.setBackgroundColor(Color.parseColor("#F44336")); // 错误选项:红色
        tvResult.setText("Yanlış");

        // 查找并高亮正确答案所在的按钮
        if (btn1.getText().toString().trim().equals(correctAnswer)) {
            btn1.setBackgroundColor(Color.parseColor("#4CAF50"));
        } else if (btn2.getText().toString().trim().equals(correctAnswer)) {
            btn2.setBackgroundColor(Color.parseColor("#4CAF50"));
        } else if (btn3.getText().toString().trim().equals(correctAnswer)) {
            btn3.setBackgroundColor(Color.parseColor("#4CAF50"));
        } else if (btn4.getText().toString().trim().equals(correctAnswer)) {
            btn4.setBackgroundColor(Color.parseColor("#4CAF50"));
        }
    }
}

✅ 关键改进说明:

Android Adb Skill
Android Adb Skill

Android 开发调试技能,通过系统 ADB 工具操作 Android 设备。以下场景必须触发此技能:(1) 直接 ADB 操作——安装 APK、查看设备列表、抓取 logcat 日志、查看已安装应用、清除应用数据、截图、重启设备、拉取/推送文件、查看 CPU/内存/电池信息、adb shell 操作;(2)...

下载
  • 精准匹配:使用 trim() 避免因空格导致比对失败;
  • 状态分离:错误时先统一重置背景色,再分别设置红/绿,避免残留样式干扰;
  • 逻辑清晰:if-else if 链确保仅一个按钮被设为绿色(因 newList 中 correctAnswer 出现且仅出现一次);
  • 零侵入:完全兼容您现有的 techList 和 generateQuestions() 逻辑,无需引入新模型类或修改 XML 布局。

⚠️ 注意事项:

  • 确保 generateQuestions() 中生成的 newList 确实包含且仅包含一次 correctAnswer(当前代码已满足);
  • 若后续扩展支持多选题或动态按钮数量,建议封装为循环遍历逻辑,但本例四按钮固定结构下 if-else if 更高效、易读;
  • 颜色值推荐提取为 colors.xml 中的资源常量(如 @color/green_success, @color/red_error),便于主题管理和维护。

通过此方案,用户点击错误答案后,界面将立即以红绿双色明确传达「哪里错了」和「正确答案是什么」,显著提升交互引导性与学习效果。

相关文章

在线游戏
在线游戏

海量精品小游戏合集,无需安装即点即玩,休闲益智、动作闯关应有尽有,秒开即玩,轻松解压,快乐停不下来

下载

相关标签:

android

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

2023.08.14

882

4

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.22

2547

5

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

2023.09.19

4777

7

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

605

5

Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

2024.03.01

924

5

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

60

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

40

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

40

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

40

26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 43.8万人学习

Java 教程
Java 教程

共578课时 | 189.2万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 9.4万人学习