繁体   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