我有一个小问题public void onBackPressed()。除了最终的ELSE外,IF ELSE语句中的所有内容都能正常工作。最后的ELSE语句假设为关闭应用程序但它没有。这里有人能帮我解决这个问题吗?onBackPress在IF ELSE语句不能正常工作
@Override
public void onBackPressed() {
int count = getFragmentManager().getBackStackEntryCount();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else if (mWebView.canGoBack()) {
//returns previous webpage
mWebView.goBack();
}else if (count == 0) {
//closes Fragment
getFragmentManager().popBackStack();
HomeFragment homefragment = new HomeFragment();
FragmentManager manager =getSupportFragmentManager();
manager.beginTransaction().replace(
R.id.relativelayout_for_fragment,
homefragment,
homefragment.getTag()).commit();
} else {
//Close app (Not working!!)
super.onBackPressed();
}
}
我有一种强烈的感觉,第三如果应该是'else if(count!= 0)' – Shaishav
@Shaishav我分享那种强烈的感觉。移动到答案,所以你可以得到正确的奖励,如果是这样,我想是的。 – Vucko
同样在这里,但我认为如果@Frances需要,代码也需要一些改进。似乎弹出返回堆栈调用,但同时用home替换当前片段。这似乎是一些智能逻辑或错误。 – Ramit