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

安卓判断题APP:实现单题仅可作答一次的功能问题

解决True/False答题APP按钮状态保持问题

嘿,我完全懂你的困扰——现在的问题根源在于每次切换题目调用update()时,你都直接把True/False按钮强制设为启用状态,完全忽略了这道题之前有没有被作答过。而且之前在Previous按钮里的尝试没有区分已作答和未作答的题目,才会导致所有按钮都被禁用。

下面是具体的解决方案,分三步修改你的代码:

1. 给Questions类添加作答状态标记

首先要给每个题目增加一个“是否已作答”的字段,用来记录用户有没有答过这道题:

public class Questions {
    private int mTextResId;
    private boolean mTrueAnswer;
    // 新增字段:标记当前题目是否已作答
    private boolean isAnswered;

    public Questions(int textResId, boolean trueAnswer) {
        mTextResId = textResId;
        mTrueAnswer = trueAnswer;
        // 默认初始状态为未作答
        isAnswered = false;
    }

    // 新增getter和setter方法
    public boolean isAnswered() {
        return isAnswered;
    }

    public void setAnswered(boolean answered) {
        isAnswered = answered;
    }

    // 保留你原本的方法
    public int getmTextResid() {
        return mTextResId;
    }

    public boolean ismTrueAnswer() {
        return mTrueAnswer;
    }
}

2. 修改checkAnswer方法,标记题目为已作答

当用户点击True/False按钮作答后,把当前题目的isAnswered设为true:

private void checkAnswer(boolean userPressedTrue) {
    boolean answerIsTrue = questionbank[mCurrentIndex].ismTrueAnswer();
    int messageResId = 0;

    if (userPressedTrue == answerIsTrue) {
        messageResId = R.string.correct_toast;
    } else {
        messageResId = R.string.incorrect_toast;
    }

    // 标记当前题目为已作答
    questionbank[mCurrentIndex].setAnswered(true);
    // 禁用当前题目的True/False按钮
    setButtonEnabled(false);

    Toast.makeText(this, messageResId, Toast.LENGTH_SHORT).show();
}

3. 修改update方法,根据作答状态设置按钮

每次切换题目时,不再一刀切启用按钮,而是根据当前题目的isAnswered状态来决定:

public void update() {
    int ques = questionbank[mCurrentIndex].getmTextResid();
    tquestion.setText(ques);
    // 如果题目未作答则启用按钮,已作答则禁用
    setButtonEnabled(!questionbank[mCurrentIndex].isAnswered());
}

为什么这样能解决问题?

核心逻辑就是给每个题目绑定了自己的作答状态,切换题目时会先检查这个状态:

  • 如果是已作答的题目,按钮保持禁用
  • 如果是未作答的题目,按钮自动启用

这样不管用户怎么点Previous/Next切换题目,已答过的题按钮都会保持禁用状态,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:52:52