浏览 931 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2016-09-05
Android Library工程写代码需要注意switch ... case语句对资源id的引用,会引发编译错误:`case expressions must be constant expressions。` 通常android工程生成的资源R.java,资源id声明如下: public static final int main=0x7f030004; 而对于library工程,资源id声明如下: public static int main=0x7f030004; 缺少了final,因此使用R.id 的switch ... case语句会编译失败。 ### 解决方法如下: 将switch ... case替换成if ... else语句。 #### for Eclipse Eclipse中,光标定位在switch上,按Ctrl + 1(Command + 1 for Mac osx),选择Convert 'switch' to 'if-else'. #### for Android studio 快捷键,Alt + Enter,选择 Replace 'switch' with 'if'. 如转换前代码: ~~~.java @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_left: hideSoftKeyboard(); finish(); break; default: break; } } ~~~ 转换后代码: ~~~.java @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_left) { hideSoftKeyboard(); finish(); } else { } } ~~~ 转自:http://www.yinqisen.cn/blog-468.html 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |