[英]Highlight effect on Button's onClick is gone after changing background to a color
[英]Changing a button's background after a few seconds
幾秒鍾后,我想更改按鈕的顏色。 我制作了一個測驗應用程序,當您正確回答問題時,按鈕將變為綠色,而當您回答錯誤問題時,按鈕將變為紅色。 現在,我已經創建了它,但是它不起作用,因為它為Runnable給出了此錯誤:
類:從Runnable派生的匿名類必須聲明為抽象,或在Runnable中實現抽象方法
run()
。
那么,這里出了什么問題?
if (mQuestionNumber == QuestionLibrary.mQuestionsFrankrijk.length) {
Intent i = new Intent(QuizActivityFrankrijk.this,
QuizResultaat.class);
Bundle bundle = new Bundle();
bundle.putInt("finalScore", mScoreFrankrijk);
i.putExtras(bundle);
QuizActivityFrankrijk.this.finish();
startActivity(i);
} else {
view.setBackgroundResource(R.drawable.button_fout);
Toast.makeText(QuizActivityFrankrijk.this, "Fout", Toast.LENGTH_SHORT).show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run(View view) {
view.setBackgroundResource(R.drawable.button_bg_rounded_corners);
updateQuestion();
}
}, 10000);
updateQuestion();
}
將您的代碼更改為
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
public void run() { //Remove the argument
view.setBackgroundResource(R.drawable.button_bg_rounded_corners);
updateQuestion();
}
}, 10000);
問題是,您沒有覆蓋正確的run()
方法。 Runnable
類提供的方法要求您重寫無參數方法。
您需要在run
方法上添加@Override
批注,並從參數中刪除View
對象。
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
view.setBackgroundResource(R.drawable.button_bg_rounded_corners);
updateQuestion();
}
}, 10000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.