【问题标题】:How to change color of a button when it is pressed like in a quiz app?像在测验应用程序中一样按下按钮时如何更改按钮的颜色?
【发布时间】:2015-06-07 04:00:59
【问题描述】:

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

【问题讨论】:

标签: java android button background vary


【解决方案1】:

你可以试试这个:

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

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

【讨论】:

    【解决方案2】:

    可以使用android:state_selectedStateListDrawableandroid:state_enabled属性的组合,通过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);
    

    【讨论】:

      【解决方案3】:

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

      在 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
      

      【讨论】:

        猜你喜欢
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 2020-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多