重新设置视图的背景颜色

MyN*_*ero 5 android view background-color

我正在尝试恢复视图的背景颜色.

我有几个可选择的视图.当用户单击其中一个视图时,将执行以下代码并且视图变为黄色:

View newSelection, previousSelection;

...

if(previousSelection != null) {
    previousSelection.setBackgroundColor(Color.BLACK); // problem here
}
newSelection.setBackgroundColor(Color.YELLOW);
Run Code Online (Sandbox Code Playgroud)

但是,我想重置以前选择的视图的颜色.但是,我不知道它是哪种颜色(我在上面的代码中将它设置为Color.BLACK).我无法在View类中找到getBackgroundColor或类似的方法.如果我拥有它,我可以保存以前的颜色,并在选择新视图时将其放回原处.

mml*_*c31 5

使用View.getBackground(),它返回视图的当前"Drawable"背景,然后可以在View中使用.setBackgroundDrawable()

View theView;
Drawable originalBackground;

...

originalBackground = theView.getBackground();

theView.setBackgroundColor(Color.YELLOW);

...
theView.setBackgroundDrawable(originalBackground);
Run Code Online (Sandbox Code Playgroud)


Nat*_*ann 2

我不确定您到底想要完成什么,但也许ColorStateList在这里会派上用场。