【问题标题】:Encountering Unreachable statement in switch case while implementing Firebase Auth实现 Firebase Auth 时在 switch case 中遇到 Unreachable 语句
【发布时间】:2017-08-26 16:07:14
【问题描述】:

“在使用菜单项中的按钮退出的开关盒下无法访问语句。”

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
            case R.id.sign_out_menu:

                AuthUI.getInstance().signOut(this); //NOT REACHABLE
                return true;

                default:
                    return super.onOptionsItemSelected(item);
                    }
    }

【问题讨论】:

  • 详细说明你的问题。
  • 因为swithc上面的return语句return super.onOption...去掉或者放在switch下面。
  • 你应该添加一些细节来解释问题
  • 对不起!我添加了一个屏幕截图,但由于某种我不知道的原因它没有显示出来。

标签: java android firebase switch-statement


【解决方案1】:

在方法的末尾写下这一行 "return super.onOptionsItemSelected(item);"

【讨论】:

    【解决方案2】:

    删除方法onOptionsItemSelected中的第一行

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item); // Remove this line
    
        switch(item.getItemId()){
    
        }
    }
    

    因为您的代码中有一个 return 语句,所以第一个 return 语句下不属于 switch 的所有内容都无法访问

    【讨论】:

      【解决方案3】:

      你可以使用 return super.onOptionsItemSelected(item);或者只是真的;结束switch case后,别忘了break;声明也。

      int id = item.getItemId();
          switch (id) {
              case R.id.id1:
                  Fragment1 fragment1 = new Fragment1();
                  FragmentManager fragmentManager = getFragmentManager();
                  FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                  fragmentTransaction.replace(((ViewGroup)getView().getParent()).getId()  , fragment1);
                  fragmentTransaction.commit();
                  break;
              case R.id.id2:
                  Fragment2 fragment2 = new Fragment2();
                  FragmentManager fragmentManager1 = getFragmentManager();
                  FragmentTransaction fragmentTransaction1 = fragmentManager1.beginTransaction();
                  fragmentTransaction1.replace(((ViewGroup)getView().getParent()).getId()  , fragment2);
                  fragmentTransaction1.commit();
                  break;            
      
          }
      
          return true;
      

      【讨论】:

      • 请解释你的答案
      • 你可以使用方法“return super.onOptionsItemSelected(item);”或者在 switch 案例结束后才为真,不要忘记 break 语句;这两个语句给出了不可访问的错误。
      猜你喜欢
      • 2016-07-25
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 2013-09-24
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多