Android教程切换第一种情况下方法无法访问
问题描述:
我正在做的教程和在添加操作按钮部分,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();
}
答
你应该在你的方法顶部摆脱return super.onOptionsItemSelected(item);
,或交换机将永远无法到达
'返回值;'结束你的情况后,控制的方法流程,所以代码(' )不会被调用(无法访问) – Pshemo 2014-09-28 17:37:39
这是Android Studio的优点之一,您称之为无法访问的代码。 – rekire 2014-09-28 17:38:17
正如一边:你应该摆脱在switch语句中使用资源ID作为案例值的习惯。它不适用于资源ID值不是“最终”的库项目。有关详细信息,请参阅[此处](http://tools.android.com/tips/non-constant-fields)。 – 2014-09-28 17:40:37