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。任何人请帮助我解决这个问题
返回按钮的正确项目ID是android.R.id.home
,一旦将R.id.home
更改为android.R.id.home
,代码应该可以正常工作。
您确定您创建了BackButton的菜单..因为如果不是,那就是为什么它不起作用..您可能创建了Imagebutton或Imageview for Back
尝试这些代码一次`
@Override
public boolean onSupportNavigateUp() {
finish();
return true;
}
@Override
public void onBackPressed() {
finish();
}
`
从启用后退按钮开始,如果您使用的是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);
}