Android库项目中的资源ID

the*_*r0w 4 android open-source shared-libraries

我想在我的网站上加入一个开源项目.但在检查"是库"选项后,有些东西如"case R.id.menu_search:"无法编译.我应该用它的常数值替换它们,或者我如何包含它?

    case R.id.menu_search: // ! case expressions must be constant expressions
        onSearchRequested();
        return true; ...
Run Code Online (Sandbox Code Playgroud)

Com*_*are 14

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