【问题标题】:Change background color of a button back after changing it before在更改之前更改按钮的背景颜色
【发布时间】:2017-09-28 14:34:18
【问题描述】:

我已经制作了一个应用程序,现在的想法是按钮的颜色发生变化,这已经有效,但现在我想将按钮的颜色更改回原来的颜色。这是我的代码:

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() {
                        @Override

                        public void run() {
                            view.setBackgroundResource(R.drawable.button_bg_rounded_corners);
                            updateQuestion();

                        }
                    }, 10000);
                    updateQuestion();

                }

而错误在于

view.setBackgroundResource(R.drawable.button_bg_rounded_corners);

从内部类中访问,需要声明为final,但我不知道该怎么做

【问题讨论】:

  • 只需使用 StateListDrawable

标签: java android android-button


【解决方案1】:

直接回答你的问题:

    ...
    Handler handler = new Handler();
    final View finalView = view;
    handler.postDelayed(new Runnable() {

        @Override
        public void run() {
            finalView.setBackgroundResource(R.drawable.button_bg_rounded_corners);
            updateQuestion();
            ...

【讨论】:

    猜你喜欢
    • 2015-06-04
    • 1970-01-01
    • 2021-06-22
    • 2015-04-03
    • 1970-01-01
    • 2011-06-26
    相关资源
    最近更新 更多