android library 使用switch 问题
Android 问题 使用 switch library
2023-06-13 09:16:58 时间
当我们在Android依赖库中使用switch-case语句访问资源ID时会报错,报的错误是case分支后面跟的参数必须是常数,换句话说出现这个问题的原因是Android library中生成的R.java中的资源ID不是常数.
当我们把一个android的项目配置为library时,我们就不能在 这个项目中使用switch case,原因就是 library库中的 生成的R.java中的资源ID不是常数,所以需要我们换一种写法。
但是当你打开你的主工程,在onClick、onItemClick等各种回调方法中是可以通过switch-case语句来访问资源ID的,因为在主工程的R.java中资源ID都被声明为了final常量。
既然是由于library的R.java中的资源ID不是常量引起的,我们可以在library中通过if-else-if条件语句来引用资源ID,这样就避免了这个错误。
所以在onclick等各种事件中使用资源id的时候 就是将 switch case 语句 换为 if -else就可以了。否则就会报出会提示case expressions must be constant expressions 错误,原因是ADT14后Android库工程中R.class中的资源常量不在为final类型错误。
官方解释 http://tools.android.com/tips/non-constant-fields
参考:http://stackoverflow.com/questions/9092712/switch-case-statement-error-case-expressions-must-be-constant-expression
相关文章
- android开机动画多长时间_Android开机动画原理分析
- android app 退出功能,Android 完美退出 App (Exit)
- android vlc 中文字幕,解决Android版vlc中文乱码问题
- 【Android布局】在程序中设置android gravity 和 android layout Gravity属性
- 适用于 Android™ 的 Windows 子系统 Magisk + LSPosed 指南
- Android angle_android 界面悬停
- android应用程序_chrome Android
- android scaleanimation动画,Android 动画之ScaleAnimation应用详解「建议收藏」
- Android传感器_传感器网络的基本功能
- Android RIL 调试问题分析 ——系统篇(4)
- Android JetPack~ DataBinding(数据绑定)(一) 集成与使用
- 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )
- 【错误记录】未安装该应用 ( 在 Android 12 之后 组件设置 android:exported=“false“ 属性 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ② ( 切换到 k0.8.8 分支 | 执行 init-android.sh 脚本进行初始化操作 )
- Android控制文字水平间距android:letterSpacing详解手机开发
- Android 开发中的一些小技巧详解手机开发
- 关于Android studio报junit错误的问题详解手机开发
- Android开发之50个常见实用技巧——活用布局详解手机开发
- Realme Flash即将发布 首款具有磁性无线充电功能的Android手机
- 微软正式发布 Android 版 Office 办公软件
- 默认情况下 80% 的 Android 应用正在使用加密流量
- Android开发环境配置问题
- html5在android中的使用问题及技巧解读
- 在android开发中尽量不要使用中文路径的问题详解
- Android自定义View设定到FrameLayout布局中实现多组件显示的方法分享
- 解析android创建快捷方式会启动两个应用的问题
- android实现文本复制到剪切板功能(ClipboardManager)