[英]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_selected
和android: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.