Подтвердить что ты не робот

Устаревший метод, но для замены метода требуется более высокий api

Я хотел использовать view.setBackgroundDrawable(Drawable), но этот метод устарел. Он заменяется на .setBackground(Drawable). Но мой минимум API 8 не может справиться с этим. Он сообщает мне, чтобы установить минимум в API 16.

Есть ли способ использовать другой метод, основанный на API устройства?

Что-то вроде

if(API<16)
{
  view.setBackgroundDrawable(Drawable)
}
else
{
  view.setBackground(Drawable)
}

Или мне действительно нужно изменить минимальный API для этого?

4b9b3361

Ответ 1

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 to 7 или что-то подобное.

Ответ 2

Что-то вроде этого:

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

Ответ 3

Вы можете использовать различные методы на основе версий 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).