You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:Alert Dialog无法正确显示正确答案问题求助

解决Alert Dialog显示错误答案的问题

嘿,我来帮你搞定这个弹窗显示错误的问题!你现在遇到的情况是Alert Dialog里只显示了Answer: 1,而不是预期的正确答案,大概率是rightAnswers变量的逻辑出了问题,或者你可能混淆了变量的用途?咱们一步步来排查:

1. 先明确你要显示的内容类型

首先得搞清楚你想在弹窗里展示的是「用户答对的总题数」,还是「当前题目的正确选项内容」?这两个逻辑完全不同:

  • 如果是答对总题数:那rightAnswers作为统计变量,要确保每次用户选对选项时都正确累加;
  • 如果是当前题目的正确答案:那rightAnswers这个变量名就不合适了,你需要单独存储当前题目的正确选项文本,比如定义String currentCorrectAnswer。

2. 检查变量的更新/取值逻辑

情况一:显示答对总题数

如果你的需求是统计答对次数,那要确认每次用户选对时都执行了累加操作,比如在按钮点击事件里:

choice1.setOnClickListener(v -> {
    // 替换成你实际的正确选项判断逻辑
    if (isCurrentChoiceCorrect(choice1)) {
        rightAnswers++; // 正确累加答对次数
    }
    // 触发弹窗
    showAnswerDialog();
});

// 封装弹窗逻辑,方便调试
private void showAnswerDialog() {
    // 先打Log确认变量值,这步能快速定位问题!
    Log.d("AnswerDebug", "当前rightAnswers的值:" + rightAnswers);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("正确答案");
    builder.setMessage("Answer : " + rightAnswers);
    builder.setPositiveButton("确定", null);
    builder.create().show();
}

如果Log里显示的rightAnswers就是1,那说明前面的累加逻辑没执行,得检查你的正确选项判断条件是不是写错了。

情况二:显示当前题目的正确答案内容

如果你的需求是展示当前题目的正确选项(比如选项文本),那要从List<Model>里的当前题目对象中获取正确答案,而不是用统计次数的rightAnswers:

// 假设turn从1开始,对应list里的索引是turn-1
Model currentQuestion = list.get(turn - 1);
String correctOptionText = currentQuestion.getCorrectAnswer(); // 对应你的Model类的方法

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("正确答案");
builder.setMessage("Answer : " + correctOptionText);
builder.setPositiveButton("确定", null);
builder.create().show();

这种情况下,rightAnswers可以继续用来统计答对次数,但和显示当前正确答案无关,别把两个变量搞混啦。

3. 排查弹窗触发时机的问题

如果Log里的变量值是正确的,但弹窗还是显示1,那可能是弹窗的创建逻辑有缓存?不过这种情况很少见,你可以尝试把弹窗的创建代码放在触发时即时执行,而不是提前创建好。

按照上面的步骤排查,应该就能找到问题所在啦!

内容的提问来源于stack exchange,提问作者Kyla Banzon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:48:00