zoukankan      html  css  js  c++  java
  • 在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案


    报错是因为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]

      

  • 相关阅读:
    day 23 索引
    day 22 全量更新
    day 21 求贫困户
    day20 函数,同比,和基础
    知识点记录
    day 20试题
    day 16面试题
    day 13拉链数据做存储
    day 13 拉链数据批量处理
    一维,二维,三维数组,vector 初始化
  • 原文地址:https://www.cnblogs.com/zimengfang/p/8001499.html
Copyright © 2011-2022 走看看