0

我有问题getBackground()setBackground()方法有疑问。我设计了一个应用程序,但现在我发现我没有检查哪个版本是用户 android 系统(我是 android 的初学者 - 很好的教训)。

我的应用程序正在使用 Build.version > 15,因为在此版本中引入了上述方法。

我想使用 16 版之前存在的类似方法。有什么想法吗?

4

1 回答 1

3

getBackground()方法从 API 级别 1 开始就已经存在,所以这应该不是问题。仅从setBackground(Drawable background)API 级别 16 开始引入,因此可能会在旧平台上引起问题。

您的替代方案是:

  1. setBackgroundColor(int color)
  2. setBackgroundDrawable(Drawable background)
  3. setBackgroundResource(int resid)

在这些方法中,第二种方法自 API 级别 16 以来已被弃用,因为它已替换为setBackground(Drawable background)您当前使用的方法。但是,如果您查看该方法的实际实现,您将看到以下内容:

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

因此,此时它所做的只是将调用委托给已弃用的setBackgroundDrawable()方法。因此,如果您想要快速修复,只需更改代码以使用该代码即可。

于 2013-08-20T02:37:04.583 回答