簡體   English   中英

幾秒鍾后更改按鈕的背景

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM