【问题标题】:Android tutorial switch 1st case method is unreachableAndroid教程切换第一种情况方法无法访问
【发布时间】:2026-01-30 08:20:03
【问题描述】:

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

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 value; 结束方法控制流,因此不会调用它之​​后的代码(在您的情况下为 switch)(无法访问)
  • 这是 Android Studio 的优势之一,您大喊代码无法访问。
  • 顺便说一句:您应该改掉在switch 语句中使用资源ID 作为案例值的习惯。它不适用于资源 ID 值不是final 的图书馆项目。有关这方面的更多信息,请参阅here

标签: java android switch-statement unreachable-statement


【解决方案1】:

你应该去掉方法顶部的return super.onOptionsItemSelected(item);,否则开关将永远无法访问

【讨论】: