繁体   English   中英

在测验应用程序中按下按钮时如何更改按钮的颜色?

[英]How to change color of a button when it is pressed like in a quiz app?

我愿意创建一个android测验应用程序。 我已经做完所有事情,我的应用程序也已完成,但是我想使测验选项按钮在用户按下时更改其颜色,以显示答案是正确还是错误。 我想在单击错误的选项时显示红色按钮,在正确的选项上显示绿色。请使用简单的代码帮助我,我可以将其嵌入预先保存的应用程序Java文件中。

您可以尝试以下方法:

someButton.setBackgroundColor(Color.RED); // Wrong option
someButton.setBackgroundColor(Color.GREEN); // Correct option

请参阅View#setBackgroundColor(int)Color
Button是View的子类。

您可以使用的组合android:state_selectedandroid:state_enabled的性质StateListDrawable实现通过XML的效果。

您的按钮背景可以在下面定义为可绘制对象

<selector>
    <item android:drawable="@drawable/default_button_background" />
    <item android:state_selected="true" android:state_enabled="true" android:drawable="@drawable/correct_answer_background" />
    <item android:state_selected="true" android:state_enabled="false" android:drawable="@drawable/wrong_answer_background"
</selector>

并在您的代码中。 在按钮的单击上添加此代码

boolean isAnswerCorrect = //your logic to check if answer is correct or not
clickedButton.setEnabled(isAnswerCorrect);

在以下方法中,您将需要为按钮上的背景创建两个图像文件,以表示正确或错误。

在res下创建一个名为Drawable的文件夹,并将这两个图像文件放在其中,然后按如下所示调用它们,如R.drawable.filename

buttonCheckAnswerObject = (Button)findViewById(R.id.buttonCheckAnswer);

buttonCheckAnswerObject.setOnClickListener(new OnClickListener() {
     @Override
     public void onClick(final View v) {
          boolean userAnswer;//check if correct
          if (userAnswer){
               v.setBackgroundResource(R.drawable.button_correct_answer_color);
          }
          else {
               v.setBackgroundResource(R.drawable.button_false_answer_color);
          }

     }
});

    enter code here

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM