我想更改按钮的背景颜色,单击按钮时,此代码未显示任何错误,也无法正常工作。

   capstone.setOnClickListener(new HandleClick());
}
    private class HandleClick implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            Button btn = (Button) v;
            String text = btn.getText().toString();
            btn.setBackgroundResource(R.color.btnClick);
            Log.d("color", R.color.btBackground + ""); // D/color: 2131427344
            Toast toast = Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT);
            toast.show();
        }
    }


Log.d()显示color的值,但按钮的颜色未更改。

最佳答案

setBackgroundResource(int)方法正在等待可绘制对象。如果您想使用颜色,请使用适当的方法,即setBackgroundColor(int)

然后呼叫btn.invalidate();

有关Android开发人员的更多详细信息
http://developer.android.com/reference/android/view/View.html#setBackgroundResource(int)

10-08 08:48