在 onOptionsItemSelected… 我看到开关块中的一些代码不同。

Case 1 (Normally seen)

public boolean onOptionsItemSelected (MenueItem item)
       switch (item.getItemId()){
             case R.id.item1:
             startActivity (new Intent (this, PrefsActivity.class));
             break;
       }
       return true

Case 2 (unsure of why it’s set up this way)

public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
               case MENU_NEW_GAME:
               newGame();
               return true;
       }
       return false;

My Question

案例1和案例2有什么区别?

答案

根据文档onOptionsItemSelected()

退货

boolean 返回 false 允许继续进行正常的菜单处理,返回 true 则在此处使用它。

如果返回 true,则单击事件将由 onOptionsItemSelect() 调用消耗,并且不会落入其他项目单击函数。

您的方法仍然有效,但可能会导致对其他函数的不必要的调用。

来自: stackoverflow.com