不推荐使用Button setTextAppearance

Sib*_*ini 6 android deprecated

不推荐使用Button setTextAppearance(Context context,int resid)

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

我应该用什么呢?

Dan*_*nai 8

不推荐使用意味着将来有时会丢弃支持,但它仍然按预期工作.在较旧的API上,没有其他选择,因为新版本setTextAppearance(int resid)仅在API级别23发布.

如果您想长时间保持安全,可以使用以下代码:

if (Build.VERSION.SDK_INT < 23) {
    yourButton.setTextAppearance(context, resid);
} else {
    yourButton.setTextAppearance(resid);
}
Run Code Online (Sandbox Code Playgroud)

此代码更喜欢API级别为23或更高级别的手机上的新版本,但在API级别23不可用时使用旧版本.


Hen*_*nry 8

我将和@Daniel Zolnai说同样的话.但是不要Build.VERSION>SDK_INT < 23在代码中的所有位置进行检查.把它放在一个地方,这样你将来很容易将其删除或对其进行更改.那怎么办呢?我会为yourButton此案做这件事.

  1. 永远不要使用ButtonAndroid提供的任何其他视图.我这样说,因为将来你需要调整一些东西,因此最好拥有自己的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);
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)


这样您就可以随时使用setTextAppearance而无需担心检查BUILD版本.如果将来你计划删除整件事,那么你必须只refactor在一个地方.这是一项工作,但从长远来看,这将帮助你很多,并将减少一些maintanance噩梦.