Android 应用程序使用一个库项目来包含大部分应用程序代码,因为该应用程序有两个版本是从核心源代码构建的。由于 IntelliJ IDEA 更新(到 v11),我在以下每个案例陈述中都收到了这个警告:
Resource IDs cannot be used in a switch statement in Android library modules
代码如下:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_one: // Build error here
// Do stuff
return true;
case R.id.menu_item_two: // Build error here
// Do stuff
return true;
default:
return super.onOptionsItemSelected(item);
}
}
好的,如果我无法通过他们的 ID 引用它们,我该如何引用它们?
最佳答案
用 if/else if
构造替换 switch
。
int id = item.getItemId();
if(id == R.id.menu_item_one) {
// ...
}
else if(id == R.id.menu_item_two) {
// ...
}
自 ADT 14 以来这是必要的,因为最终修饰符已从 R 类中的 id 中删除。
关于android - Android库项目中的菜单项ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8476912/