我有一個小問題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