比较按钮的背景资源

Sab*_*oth 5 android

button.setBackgroundResource(R.Drawable.abc);
if ( button.getBackground()==getResources().getDrawable(R.drawable.abc))
{
    button.setBackgroundResource(R.drawable.xyz);
}

else if( button.getBackground()==getResources().getDrawable(R.drawable.xyz) )
{
    button.setBackgroundResource(R.drawable.abc);
}
Run Code Online (Sandbox Code Playgroud)

我想比较按钮上设置的背景图像.上面的代码取自Stack Overflow ...但它似乎不起作用

请建议一个更好的方法.

Pra*_*ani 14

试试这个

if ( button.getBackground().getConstantState()==getResources().getDrawable(R.drawable.abc).getConstantState())
{
     button.setBackgroundResource(R.drawable.xyz);
}
Run Code Online (Sandbox Code Playgroud)

  • 在棒棒糖版本上它不起作用,为什么?如何修复它? (2认同)
  • 虽然Android Studio没有对此进行争论,但该方法最近并没有奏效。也许“正确”的方法已经改变了一点?我已经尝试了两种方法 - 问题中的一种和答案中的一种。 (2认同)