簡體   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