我有很多按钮,在drawable中定义了不同的自定义背景。 单击按钮后,我想根据实际资源更改背景可绘制资源。
我正在尝试使用此代码来获取实际资源,并将其与所有可绘制对象进行比较,但是,如果验证了大小写,它将无法正常工作。另外,每次我单击按钮时,“日志第一,第二和第三”每次都会打印不同的值(不应该相同吗?)
private void selectNewCell(){
Log.d("ChangeBG","Select new cell");
Button btn = buttonMatrix[selectedCoordinates.getI()][selectedCoordinates.getJ()];
Drawable actualBG = btn.getBackground();
Log.d("Actual", "Value " + actualBG.getConstantState());
Log.d("First", "Value " + getResources().getDrawable(R.drawable.button_bg).getConstantState());
Log.d("Second", "Value " + getResources().getDrawable(R.drawable.button_bg_bot).getConstantState());
Log.d("Third", "Value " + getResources().getDrawable(R.drawable.button_bg_right).getConstantState());
if(actualBG.getConstantState().equals(getResources().getDrawable(R.drawable.button_bg).getConstantState())){
btn.setBackgroundResource(R.drawable.button_bg_selected);
Log.d("ChangeBG","Case1");
} else if(actualBG.getConstantState().equals(getResources().getDrawable(R.drawable.button_bg_bot).getConstantState())){
btn.setBackgroundResource(R.drawable.button_bg_bot_selected);
Log.d("ChangeBG","Case2");
} else if(actualBG.getConstantState().equals(getResources().getDrawable(R.drawable.button_bg_right).getConstantState())){
btn.setBackgroundResource(R.drawable.button_bg_right_selected);
Log.d("ChangeBG","Case3");
}
}