public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Constants.EXIT :
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
和Constants类:
public class Constants {
private Constants() {
}
public static final int EXIT = R.id.mExit;
}
我错过了什么? “menuExitButton”不是常数?
答案 0 :(得分:0)
如果R.id.mExit
来自libary项目资源文件,则它不是常量表达式。使用非常量表达式初始化static final
变量不会使变量本身保持不变。
有关内容变量初始化的更多信息,请参阅评论中@still_learning链接的answer。
将声明标识符的资源移动到主应用程序项目,使其成为可在switch
表达式中使用的常量变量,或者只用switch
替换if
- else