无法单击操作栏中的后退箭头

问题描述 投票:0回答:4
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case R.id.home:
                onBackPressed();
                Log.d("on","back pressed");
                return true;
           }
        return super.onOptionsItemSelected(item);
    }

单击操作栏中的后退箭头时无法返回。甚至没有调用该方法。我的课程扩展了AppCompatActivity。任何人请帮助我解决这个问题

android android-actionbar
4个回答
1
投票

返回按钮的正确项目ID是android.R.id.home,一旦将R.id.home更改为android.R.id.home,代码应该可以正常工作。


0
投票

您确定您创建了BackButton的菜单..因为如果不是,那就是为什么它不起作用..您可能创建了Imagebutton或Imageview for Back


0
投票

尝试这些代码一次`

 @Override
public boolean onSupportNavigateUp() {
    finish();
   return true;
}

@Override
public void onBackPressed() {
    finish();
}

`


0
投票

从启用后退按钮开始,如果您使用的是AppCompatActivity,请不要使用,如果使用相同的,请使用:

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
     setSupportActionBar(toolbar);
     getSupportActionBar().setDisplayHomeAsUpEnabled(true);
     getSupportActionBar().setDisplayShowHomeEnabled(true);

监听您在使用R.id.home的android.R.id.home上的点击事件,将其替换为这样:

          @Override
          public boolean onOptionsItemSelected(MenuItem menuItem) {
          if (menuItem.getItemId() == android.R.id.home) {
          // if your previous activity is present in stack(Means Not finished) then prefer finish();
          finish();
          //Or You can use same method you mention
           onBackPressed();
           }
          return super.onOptionsItemSelected(menuItem);
          }
© www.soinside.com 2019 - 2024. All rights reserved.