Android库项目中的资源ID
我想在我的项目中加入一个开源项目。但是在选中“is library”选项后,诸如“case R.id.menu\u search:”之类的东西就无法编译了。我应该用它的contant值替换它们吗,或者如何包含它Android库项目中的资源ID,android,open-source,shared-libraries,Android,Open Source,Shared Libraries,我想在我的项目中加入一个开源项目。但是在选中“is library”选项后,诸如“case R.id.menu\u search:”之类的东西就无法编译了。我应该用它的contant值替换它们吗,或者如何包含它 case R.id.menu_search: // ! case expressions must be constant expressions onSearchRequested(); return true; ... 正如其他人指出的,您需
case R.id.menu_search: // ! case expressions must be constant expressions
onSearchRequested();
return true; ...
正如其他人指出的,您需要将
switch()
语句更改为if()
/else if()
/else
语句R.id.menu\u search
不是常量(static final
),不能用于案例
语句。这是因为R.id.menu\u search
来自您的Android库项目android.R.id.home
是一个常量,因为它是操作系统的一部分,不会改变。将case更改为if…else语句。在eclipse中,当光标位于case关键字上时,按ctrl+1可以实现这一点?但是所有的R.id菜单。。。选中“is library”选项后无法识别。case android.R.id.home可以正确识别。为什么模块中的id不是静态最终的,但当你的应用程序代码中有它们时,所有的R.java id都是最终的…@Boy:我记不清原因了——对不起@当多个库项目合并时,字段的实际值(必须是唯一的)可能会发生冲突。看见