2012-09-18 80 views
4

我想在我的项目中包含一个开源项目。但在检查“是库”选项之后,有些内容如“案例R.id.menu_search:”无法编译。我是否应该用它的常数值来替换它们,或者如何包含它?Android库项目中的资源ID

case R.id.menu_search: // ! case expressions must be constant expressions 
     onSearchRequested(); 
     return true; ... 
+0

将case更改为if ... else语句。在eclipse中,当光标位于case关键字上时,可以通过按ctrl + 1来实现。 –

+0

if(id == R.id.menu_search){...}?但是,在检查选项“是库”之后,所有R.id.menu ...都不会被识别。 – thecr0w

+0

可以正确识别android.R.id.home的情况。 – thecr0w

回答

13

正如其他人所指出的那样,你需要改变你的switch()声明if()/else if()/else语句。 R.id.menu_search不是常数(static final),不能用于case语句。这是因为R.id.menu_search来自您的Android库项目。 android.R.id.home一个常数,因为这是操作系统的一部分,并没有改变。