码迷,mamicode.com
首页 > 移动开发 > 详细

在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案

时间:2017-12-08 01:14:09      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:ace   back   声明   theme   r.java   必须   原因   java   car   


报错是因为case分支后面跟的参数必须是常数,也就是说library中的R.java的资源ID不是常数,
public static final class animator {
public static int design_appbar_state_list_animator = 0x7f020001;
}
public static final class array {
public static int card_tabList = 0x7f030001;
}
public static final class attr {
public static int actionBarDivider = 0x7f040001;
public static int actionBarItemBackground = 0x7f040002;
public static int actionBarPopupTheme = 0x7f040003;
...}

如上面所示每一个资源ID都没有被声明为final
项目下的R.java的资源ID如下
public static final class animator {
public static final int design_appbar_state_list_animator=0x7f020000;
}
public static final class array {
public static final int card_tabList=0x7f030000;
public static final int tab_list=0x7f030001;
}

查了很多资料,除了用if-else替换没有其他解决方案[Facepalm]

  

在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案

标签:ace   back   声明   theme   r.java   必须   原因   java   car   

原文地址:http://www.cnblogs.com/zimengfang/p/8001499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!