2017-06-01 6 views
0

私はonBackPressed()にAlertDialogを持っています。ポジティブボタンをクリックすると、インテントでアクティビティを起動する必要があります。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を(コミット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

を削除してみてください。

関連する問題