Cannot resolve symbol ‘item’

huangapple go评论102阅读模式
英文:

Cannot resolve symbol 'item'

问题

  1. @Override
  2. public boolean onOptionsItemSelected(MenuItem item){
  3. Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  4. switch (item.getItemId()){
  5. case R.id.Item1:
  6. goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  7. startActivity(goToNextActivity);
  8. break;
  9. case R.id.Item2:
  10. goToNextActivity = new Intent(getApplicationContext(), VidPage.class);
  11. startActivity(goToNextActivity);
  12. break;
  13. case R.id.Item3:
  14. goToNextActivity = new Intent(getApplicationContext(), DatePage.class);
  15. startActivity(goToNextActivity);
  16. break;
  17. }
  18. return true;
  19. }
英文:

I'm trying to make my menu items go to different activities, so I tried to override the onOptionsItemSelcted on every activity, but I'm getting this error.

also getting "Constant expression required" on every case "R.id.ItemX".

  1. @Override
  2. public boolean onOptionsItemSelected(MenuItem menu){
  3. switch (item.getItemId()){ // ERROR IS HERE ON THE WORD 'item', Cannot resolve symbol 'item'.
  4. Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  5. case R.id.Item1: // Constant expression required
  6. goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  7. startActivity(goToNextActivity);
  8. break;
  9. case R.id.Item2: // Constant expression required
  10. goToNextActivity = new Intent(getApplicationContext(), VidPage.class);
  11. startActivity(goToNextActivity);
  12. break;
  13. case R.id.Item3: // Constant expression required
  14. goToNextActivity = new Intent(getApplicationContext(), DatePage.class);
  15. startActivity(goToNextActivity);
  16. break;
  17. }
  18. return true;
  19. }

答案1

得分: 1

使用这个:

  1. menu.getItemId()

而不是这个:

  1. item.getItemId()

示例代码

  1. @Override
  2. public boolean onOptionsItemSelected(MenuItem menu) {
  3. switch (menu.getItemId()) { // 这里的错误在于单词 'item',其余部分正常工作。
  4. Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  5. case R.id.Item1:
  6. goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  7. startActivity(goToNextActivity);
  8. break;
  9. case R.id.Item2:
  10. goToNextActivity = new Intent(getApplicationContext(), VidPage.class);
  11. startActivity(goToNextActivity);
  12. break;
  13. case R.id.Item3:
  14. goToNextActivity = new Intent(getApplicationContext(), DatePage.class);
  15. startActivity(goToNextActivity);
  16. break;
  17. }
  18. return true;
  19. }
英文:

Use this

  1. menu.getItemId()

Instead of this

  1. item.getItemId()

SAMPLE CODE

  1. @Override
  2. public boolean onOptionsItemSelected(MenuItem menu){
  3. switch (menu.getItemId()){ // ERROR IS HERE ON THE WORD 'item', THE REST WORKS FINE.
  4. Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  5. case R.id.Item1:
  6. goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
  7. startActivity(goToNextActivity);
  8. break;
  9. case R.id.Item2:
  10. goToNextActivity = new Intent(getApplicationContext(), VidPage.class);
  11. startActivity(goToNextActivity);
  12. break;
  13. case R.id.Item3:
  14. goToNextActivity = new Intent(getApplicationContext(), DatePage.class);
  15. startActivity(goToNextActivity);
  16. break;
  17. }
  18. return true;
  19. }

答案2

得分: 0

使用这个:

  1. menu.getItemId()

这将返回项目的ID,

英文:

use this

menu.getItemId()

this will return you the item id,

huangapple
  • 本文由 发表于 2020年10月2日 22:40:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/64173484.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定