
我有一个与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版本使用不同的代码行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)