我有一个错误:错误:无法访问语句错误:错误:缺少返回语句

时间:2017-05-24 16:48:53

标签: java android

我有一个错误:

  

错误:无法访问语句错误:错误:缺少返回语句

正在运行此代码:

public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerlayout;
    private ActionBarDrawerToggle mToggle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDrawerlayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        mToggle = new ActionBarDrawerToggle(this,mDrawerlayout,R.string.open,R.string.close);

        mDrawerlayout.addDrawerListener(mToggle);
        mToggle.syncState();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
        if(mToggle.onOptionsItemSelected(item)){
           return true;
        }
    }
}

4 个答案:

答案 0 :(得分:2)

在第一行之后的onOptionsItemSelected()中if()是无法访问的代码请在下面使用。

@Override
public boolean onOptionsItemSelected(MenuItem item) { 
if(mToggle.onOptionsItemSelected(item)){
   return true;
}else{ 
   return false;
 }
}

答案 1 :(得分:0)

致电super.onOptionsItemSelected(item)

后,请致电mToggle.onOptionsItemSelected(item)
  @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(mToggle.onOptionsItemSelected(item)){
           return true;
        }
        return super.onOptionsItemSelected(item);
    }

答案 2 :(得分:0)

在您的代码中

public boolean onOptionsItemSelected(MenuItem item) {
    return super.onOptionsItemSelected(item);
    if(mToggle.onOptionsItemSelected(item)){
       return true;
    }

您的第一个语句是return关键字,这使得当前方法跳过下一个代码块。

答案 3 :(得分:0)

您将从onOptionsItemSelected返回,并且在return语句后仍有一些代码。只需更改为

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(mToggle.onOptionsItemSelected(item)){
       return true;
    }
    return super.onOptionsItemSelected(item);

}