不推荐使用Button setTextAppearance(Context context,int resid)
和setTextAppearance(int resid) - 仅适用于API级别23
我应该使用什么?
答案 0 :(得分:8)
不推荐使用意味着将来有时会删除支持,但它仍然按预期工作。在较旧的API上,没有其他选择,因为新的setTextAppearance(int resid)
仅在API级别23发布。
如果您想长时间保持安全,可以使用以下代码:
if (Build.VERSION.SDK_INT < 23) {
yourButton.setTextAppearance(context, resid);
} else {
yourButton.setTextAppearance(resid);
}
此代码更喜欢API级别为23或更高的手机上的新版本,但在API级别23不可用时使用旧版本。
答案 1 :(得分:8)
我将和@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
。这是一项工作,但从长远来看,这将对你有所帮助,并会减少一些维护噩梦。