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

На этот вопрос уже есть ответ здесь:

setBackground против setBackgroundDrawable (Android) 12 ответов

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

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

Что-то вроде

if(API

Ответы на вопрос(3)

Решение Вопроса

setBackgroundDrawable устарела, но все еще работает, так что вы можете просто использовать его. Но если вы хотите быть полностью правы, вы должны использовать что-то вроде этого

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

Чтобы это работало, вам нужно установить buildTarget api 16 и min build на 7 или что-то подобное.

 Ab_23 июл. 2016 г., 18:19
@BenClayton Я никогда не в новинкуnoinspection, Спасибо
 Niels05 нояб. 2012 г., 10:48
На самом деле мне нужны оба из них: @SuppressLint ("NewApi») @SuppressWarnings ("Устаревшая ")
 Antrromet05 нояб. 2012 г., 10:51
Да, я забыл упомянуть предупреждения Lint
 Antrromet05 нояб. 2012 г., 10:43
В этом коде ... предупреждение все равно будет отображаться, вы можете использовать предупреждения для его удаления!
 Ben Clayton03 сент. 2014 г., 21:53
Еще один способ отключить проверку на ворс//noinspection deprecation на линии перед setBackgroundDrawable ()

Например:

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

Здесь установите вашtargetSDkversion к любым более высоким версиям (например, 16 здесь) и установите вашminsdkversion для более низких версий (API 7).

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

Ваш ответ на вопрос