2017-06-01 35 views
0

我在onBackPressed()中有一個AlertDialog,如果我點擊肯定按鈕,它必須用Intent啓動一個活動。AlertDialog總是按下正向按鈕

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 

     android.app.AlertDialog.Builder logoutDialog = new android.app.AlertDialog.Builder(MainActivity.this); 
     logoutDialog.setTitle("Logout"); 
     logoutDialog.setMessage("¿Are you sure that you want to exit? Your session will end." 
     ); 

     logoutDialog.setPositiveButton("LOGOUT", 
       new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         Intent i = new Intent(MainActivity.this, LoginActivity.class); 
         startActivity(i); 
         finish(); 
        } 
       } 
     ); 
     logoutDialog.setNegativeButton("CANCEL", 
       new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
        } 
       } 
     ); 
     logoutDialog.show(); 
    } 

但是當我壓回對話框出現不到一秒鐘,然後將其轉到預期的活動,但不按PositiveButton。

回答

2

嘗試刪除super.onBackPressed();

@Override 
public void onBackPressed() { 
    //super.onBackPressed(); 

    android.app.AlertDialog.Builder logoutDialog = new android.app.AlertDialog.Builder(MainActivity.this); 
    logoutDialog.setTitle("Logout"); 
    logoutDialog.setMessage("¿Are you sure that you want to exit? Your session will end." 
    ); 

    logoutDialog.setPositiveButton("LOGOUT", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        Intent i = new Intent(MainActivity.this, LoginActivity.class); 
        startActivity(i); 
        finish(); 
       } 
      } 
    ); 
    logoutDialog.setNegativeButton("CANCEL", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
       } 
      } 
    ); 
    logoutDialog.show(); 
} 
0

剛剛提交super.onBackPressed()它完成您的活動。