Java 在Android 3上以编程方式设置背景。(背景设置)

Java 在Android 3上以编程方式设置背景。(背景设置),java,android,button,Java,Android,Button,在Android 3中找不到此代码。除了这个还有别的款式吗 powerButton.setBackground(getApplicationContext().getResources().getDrawable(R.drawable.lock)); 错误在于 java.lang.NoSuchMethodError:android.widget.Button.setBackground。setBackground(可绘制的d)在API 16(果冻豆)中引入。因此,您不能在API 15及以下版本

在Android 3中找不到此代码。除了这个还有别的款式吗

powerButton.setBackground(getApplicationContext().getResources().getDrawable(R.drawable.lock));
错误在于

java.lang.NoSuchMethodError:android.widget.Button.setBackground。

setBackground(可绘制的d)
在API 16(果冻豆)中引入。因此,您不能在API 15及以下版本中使用它

作为替代方案,您可以使用

你也可以这样做

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
   powerButton.setBackground(getResources().getDrawable(R.drawable.lock));
else
   powerButton.setBackgroundResource(R.drawable.lock);
intsdk=android.os.Build.VERSION.sdk\u int;
if(sdk
你是一位大师!但有一个问题。。他们为什么要采用这种方法?setBackground(可绘制的d)何时不可用?您的意思是弃用,因为该方法比以前有所改进,或者旧方法中存在缺陷,但在新方法中已修复。
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
//  use   setBackgroundDrawable();
} else {
 //  use setBackground();
}