不推荐使用的方法,但替换方法需要更高的api

时间:2012-11-05 09:35:50

标签: android deprecated

我想使用view.setBackgroundDrawable(Drawable),但此方法为deprecated。它被替换为.setBackground(Drawable)。但我的最低API 8无法处理。它告诉我将最小值设置为API 16。

有没有办法根据设备的API使用不同的方法?

这样的东西
if(API<16)
{
  view.setBackgroundDrawable(Drawable)
}
else
{
  view.setBackground(Drawable)
}

或者我是否真的需要更改最低API才能执行此操作?

3 个答案:

答案 0 :(得分:40)

setBackgroundDrawable已被弃用,但它仍然有效,因此您可以使用它。但如果你想完全正确,你应该使用类似的东西

int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
    setBackgroundDrawable()
} else {
    setBackground();
}

为此,您需要将buildTarget api 16和min build设置为7或类似的东西。

答案 1 :(得分:7)

这样的事情:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN){
   view.setBackgroundDrawable(Drawable)
} else {
   view.setBackground(Drawable)
}

答案 2 :(得分:5)

您可以根据API版本使用不同的方法。

例如:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
        //Methods for version <8 (FROYO)
} else {
        // Methods for version >=8
}

此处将targetSDkversion设置为任何更高版本(例如此处为16),并将minsdkversion设置为较低版本(API 7)。