2014-09-28 146 views
2

我正在做的教程和在添加操作按钮部分,openSearch()和openSettings()未定义。所以我把它们作为同一班级的私人空白。不过,在开关中,openSearch();显然无法达到。当我删除该案例时,下一个案例中的方法无法访问。这是我的代码。Android教程切换第一种情况下方法无法访问

return super.onOptionsItemSelected(item); 
    // Handle presses on the action bar items 
    switch (item.getItemId()) { 
     case R.id.action_search: 
      openSearch(); 
      return true; 
     case R.id.action_settings: 
      openSettings(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
private void openSettings() { 
    Toast.makeText(this, "Search button pressed", Toast.LENGTH_SHORT).show(); 
} 
private void openSearch() { 
    Toast.makeText(this, "Search button pressed", Toast.LENGTH_SHORT).show(); 
} 
+0

'返回值;'结束你的情况后,控制的方法流程,所以代码(' )不会被调用(无法访问) – Pshemo 2014-09-28 17:37:39

+0

这是Android Studio的优点之一,您称之为无法访问的代码。 – rekire 2014-09-28 17:38:17

+1

正如一边:你应该摆脱在switch语句中使用资源ID作为案例值的习惯。它不适用于资源ID值不是“最终”的库项目。有关详细信息,请参阅[此处](http://tools.android.com/tips/non-constant-fields)。 – 2014-09-28 17:40:37

回答

3

你应该在你的方法顶部摆脱return super.onOptionsItemSelected(item);,或交换机将永远无法到达

相关问题