私はナビゲーション・ドロワー・メニューもあるフラグメント・ページ数が少ないアプリケーションに取り組んでいます。ナビゲーション・ドロワーとフラグメント・ページのバック・キーの処理
フラグメントページで[戻る]キーをクリックすると、アプリケーション終了ダイアログが正常に動作しています。しかし、私が任意のフラグメントページにいるときに、同時にナビゲーションメニューをクリックすると、ナビゲーションメニューがトップポジションになります。ここで私はバックキーをクリックすると、アプリケーションの終了ボタンが来ているが、私はナビゲーションメニューが最初に終了ダイアログボックスが消えるはずです。
onBackPressedのコード():
public void onBackPressed()
{
final FragmentManager fm = getSupportFragmentManager();
if(fm.getBackStackEntryCount() != 1){
super.onBackPressed();
}
else
{
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setTitle("Exit Application?");
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
================================= =========================================
Code for onDrawerItemClick():
private void onDrawerItemClick(final int item) {
UserService userService = new UserService(this);
switch (item) {
case TEST1:
test1();
break;
case TEST2:
test2();
break;
case LOGOUT:
userService.logout();
finish();
Toast.makeText(MenuActivity.this, "LOGOUT", Toast.LENGTH_SHORT).show();
break;
}
mDrawerLayout.closeDrawer(GravityCompat.START);
}
ありがとうございます。それは完璧に働いた。 –