按钮 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
案例执行此操作。
切勿像这样使用 Button
或 android 提供的任何其他视图。我这样说是因为将来您需要调整一些东西,因此最好拥有自己的 MyButton
或类似的东西。所以创建 MyButton
扩展 Button
。
在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
。这需要一些工作,但在长期 运行 中,这将对您有很大帮助,并将减少一些 维护噩梦。
按钮 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
案例执行此操作。
切勿像这样使用
Button
或 android 提供的任何其他视图。我这样说是因为将来您需要调整一些东西,因此最好拥有自己的MyButton
或类似的东西。所以创建MyButton
扩展Button
。在
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
。这需要一些工作,但在长期 运行 中,这将对您有很大帮助,并将减少一些 维护噩梦。