按钮 setTextAppearance 已弃用

Button setTextAppearance is deprecated

按钮 setTextAppearance(Context context, int resid) 已弃用

和 setTextAppearance(int resid) - 仅适用于 API 级别 23

我应该改用什么?

弃用意味着将来有时会放弃对它的支持,但它仍然按预期工作。在旧的 API 上,别无选择,因为新的 setTextAppearance(int resid) 仅在 API 级别 23 时发布。

如果想长久安全,可以使用以下代码:

if (Build.VERSION.SDK_INT < 23) {
    yourButton.setTextAppearance(context, resid);
} else {
    yourButton.setTextAppearance(resid);
}

此代码在 API 23 级或更高级别的手机上优先使用新版本,但在 API 23 级手机不可用时使用旧版本。

我要说的和@Daniel Zolnai 一样。但是不要在代码的所有地方都检查 Build.VERSION>SDK_INT < 23 。将它放在一个地方,以便您将来可以轻松删除它或对其进行更改。那怎么办呢?我将为 yourButton 案例执行此操作。

  1. 切勿像这样使用 Button 或 android 提供的任何其他视图。我这样说是因为将来您需要调整一些东西,因此最好拥有自己的 MyButton 或类似的东西。所以创建 MyButton 扩展 Button

  2. MyButton里面,输入下面的代码:

    public void setTextAppearance(Context context, int resId) {
        if (Build.VERSION.SDK_INT < 23) {
            super.setTextAppearance(context, resId);
        } else {
            super.setTextAppearance(resId);
        }
    }
    


这样您就可以随时使用 setTextAppearance 而无需担心检查 BUILD 版本。如果将来您打算删除整个内容,那么您必须只在一个地方 refactor。这需要一些工作,但在长期 运行 中,这将对您有很大帮助,并将减少一些 维护噩梦。