web-dev-qa-db-ja.com

非推奨のメソッドですが、メソッドを置き換えるにはより高いAPIが必要です

view.setBackgroundDrawable(Drawable)を使用したかったのですが、このメソッドは 非推奨 です。 .setBackground(Drawable)に置き換えられました。しかし、私の最小のAPI 8はそれを処理できません。最小値をAPI 16に設定するよう指示されます。

デバイスのAPIに基づいて、別の方法を使用する方法はありますか?

何かのようなもの

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

それとも、これを行うには最小限のAPIを変更する必要がありますか?

23
Niels

setBackgroundDrawableは非推奨ですが、引き続き機能するため、そのまま使用できます。しかし、完全に正確になりたい場合は、次のようなものを使用する必要があります

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

これを機能させるには、buildTarget api 16を設定し、最小ビルドを7または同様のものに設定する必要があります。

40
Antrromet

このようなもの:

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

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)に設定します。

5
Renjith