Android– 如何根据Android版本使用不同的代码行

Android– 如何根据Android版本使用不同的代码行,第1张

概述我有一个与10(GINGERBREAD_MR1)到17(JELLY_BEAN_MR1)的Android版本兼容的项目.所以,我想将setBackgroundDrawable用于低至16的版本,并将setBackground用于版本16或更高版本.我试过这个:if(Build.VERSION.SDK_INT<Build.VERSION_CODES.JELLY_BEAN){subMessageFromToLine

我有一个与10(GINGERBREAD_MR1)到17(JELLY_BEAN_MR1)的Android版本兼容的项目.

所以,我想将setBackgroundDrawable用于低至16的版本,并将setBackground用于版本16或更高版本.

我试过这个:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {    subMessageFromTolinearLayout.setBackgroundDrawable(null);} else {    subMessageFromTolinearLayout.setBackground(null);}

但是,Eclipse给了我:

subMessageFromTolinearLayout.setBackgroundDrawable(null);的警告:
“不推荐使用VIEw类型的方法setBackgroundDrawable(Drawable)”

并且subMessageFromTolinearLayout.setBackground(null);的错误:
“调用需要API级别16(当前最小值为10):androID.Widget.linearLayout #setBackground”

我如何修复此错误,以便根据正在运行的AndroID版本使用这两行?

提前致谢.

解决方法:

一般来说,最强大的方式是使用class lazy loading:

static boolean isSDK17(){   return androID.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1;}if (isSDK17())    xyMode_SDK17.setXyMode(context, mode);else    xyMode_SDK8.setXyMode(context, mode);@TargetAPI(17)public class xyMode_SDK17{  static voID setXyMode(Context context, boolean mode)  {...}}public class xyMode_SDK8{  @SuppressWarnings("deprecation")  static voID setXyMode(Context context, boolean mode)   {...}}
总结

以上是内存溢出为你收集整理的Android – 如何根据Android版本使用不同的代码行全部内容,希望文章能够帮你解决Android – 如何根据Android版本使用不同的代码行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1116018.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存