开发者社区 问答 正文

按钮的颜色在按下时发生变化,但是当我进行下一次迭代时,按钮的颜色不会变为默认的背景颜色

我对android应用程序开发非常陌生。目前,我正在做带有10个问题的简单android测验应用程序。

我的默认选项按钮颜色为白色。当用户回答了三个选项中的一个问题时,我想通过更改选项按钮的颜色(通过在setOnClickListener方法中使用setBackground颜色)向他们显示所选的选项。

但是我的问题是,我的第一个问题选择的选项颜色也来到了第二个问题,而没有选择答案。我不知道如何在每次迭代时取消背景色。

提前致谢!!!

Option1.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {

          selected_option = 0;
          question_id = 1;
          Option1.setBackgroundColor(R.color.Yellow);
          updateSelectedAnswer(selected_option, question_id);
      }
  });

展开
收起
几许相思几点泪 2019-12-23 21:52:10 646 分享 版权
阿里云 AI 助理回答

在Android应用开发中,为了实现您所描述的功能,即在选择新问题的选项时重置前一个问题的选项颜色,您需要在每次问题切换时主动恢复所有选项按钮的颜色。这可以通过在开始新问题之前调用一个方法来实现,该方法将所有选项按钮的背景颜色重置为默认值。

首先,确保您有一个方法用于设置按钮的背景颜色到默认(白色):

private void resetOptionColors() {
    Option1.setBackgroundColor(ContextCompat.getColor(this, R.color.defaultButtonColor));
    Option2.setBackgroundColor(ContextCompat.getColor(this, R.color.defaultButtonColor));
    Option3.setBackgroundColor(ContextCompat.getColor(this, R.color.defaultButtonColor));
    // 如果有更多选项,继续添加...
}

这里的R.color.defaultButtonColor应该替换为您应用中定义的默认按钮颜色资源ID。

然后,在处理每个问题逻辑的地方(例如,在用户点击“下一个”按钮或自动前进到下一题时),在开始处理新问题之前调用这个resetOptionColors()方法:

nextButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 重置所有选项颜色
        resetOptionColors();
        
        // 然后进行到下一个问题的逻辑
        // ...
    }
});

这样,每当用户移动到下一个问题时,当前显示的所有选项颜色都会被重置为默认颜色,从而解决了您的问题。记得根据实际的按钮ID和布局调整上述代码。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: