4

Android プロジェクトのビルド ターゲットを API 17 にアップグレードしたところ、setBackgroundDrawable が非推奨であるという警告が表示されます。答えは setBackground を使用することのようですが、それは古いバージョンでは利用できません。

新しい方法を使用する実際の利点はありますか、それとも Google が名前を変更したかっただけですか? 2 つが同じように機能する場合、プラットフォームのバージョン チェックやリフレクションでコードを複雑にすることに何の意味もありません。

4

1 に答える 1

8

新しい方法を使用する実際の利点はありますか、それとも Google が名前を変更したかっただけですか?

彼らは名前を変更したいだけのようで、ソースコードを見てください:

public void setBackground(Drawable background) {
    //noinspection deprecation
    setBackgroundDrawable(background);
}

@Deprecated
public void setBackgroundDrawable(Drawable background) { ... }

すべての作業は引き続き で行われsetBackgroundDrawable()ます。今のところ、非推奨の警告は無視できますが、将来的に APIsetBackgroundDrawable()が削除されることを理解しておいてください。


興味がある場合はsetBackgroundResource(int resid)、リソース ID からドローアブルを作成し、呼び出しますsetBackground()(これも を呼び出しますsetBackgroundDrawable())...

于 2012-12-05T18:14:33.167 に答える