我是Android编程的新手。 我知道一些函数和类不在第一个Android版本中,所以我们必须使用不同的代码来处理不同的版本。例如,要设置Button的背景颜色,我应该使用以下代码:
// Set button background
if (Build.VERSION.SDK_INT >= 16) {
this.setBackground(background);
} else {
this.setBackgroundDrawable(background);
}
我的项目的目标API版本是11,因此setBackground
产生编译错误,setBackgroundDrawable
产生弃用警告,我应该如何更改此代码或清单等以使此应用程序正常工作两个版本?
在清单中:
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
答案 0 :(得分:3)
您可以(并且应该)使用setBackgroundResource来引用您的背景可绘制资源。自API 1起可用。如:
this.setBackgroundResource(R.drawable.your_backround_resource_id);
答案 1 :(得分:3)
如果您的背景是资源,请务必遵循Oren的回答。但是,我们假设你有一些其他Drawable
你希望用作你的背景。
要清除编译错误,您需要针对API级别16或更高版本进行编译。在Eclipse中,即Project&gt;属性&gt; Android主菜单;在Android Studio中,这是compileSdkVersion
文件中的build.gradle
值。
您必须忍受弃用。