问题描述
我试图使菜单项进入不同的活动,所以我试图在每个活动上覆盖onoptionsItemSelcted,但出现此错误。
在每种情况下“ R.id.ItemX”也都会获得“需要常量表达式”。
@Override
public boolean onoptionsItemSelected(MenuItem menu){
switch (item.getItemId()){ // ERROR IS HERE ON THE WORD 'item',Cannot resolve symbol 'item'.
Intent goToNextActivity = new Intent(getApplicationContext(),MainActivity.class);
case R.id.Item1: // Constant expression required
goToNextActivity = new Intent(getApplicationContext(),MainActivity.class);
startActivity(goToNextActivity);
break;
case R.id.Item2: // Constant expression required
goToNextActivity = new Intent(getApplicationContext(),VidPage.class);
startActivity(goToNextActivity);
break;
case R.id.Item3: // Constant expression required
goToNextActivity = new Intent(getApplicationContext(),DatePage.class);
startActivity(goToNextActivity);
break;
}
return true;
}
解决方法
使用此
menu.getItemId()
代替这个
item.getItemId()
示例代码
@Override
public boolean onOptionsItemSelected(MenuItem menu){
switch (menu.getItemId()){ // ERROR IS HERE ON THE WORD 'item',THE REST WORKS FINE.
Intent goToNextActivity = new Intent(getApplicationContext(),MainActivity.class);
case R.id.Item1:
goToNextActivity = new Intent(getApplicationContext(),MainActivity.class);
startActivity(goToNextActivity);
break;
case R.id.Item2:
goToNextActivity = new Intent(getApplicationContext(),VidPage.class);
startActivity(goToNextActivity);
break;
case R.id.Item3:
goToNextActivity = new Intent(getApplicationContext(),DatePage.class);
startActivity(goToNextActivity);
break;
}
return true;
}
,
使用此
menu.getItemId()
这将返回您的商品ID,