2016-08-29 3 views
0

Мне нужно отображать Alert Message пользователю, когда он нажимал Back Button. Я написал следующий код, он отображает Alert Box на секунду, а затем перенаправляет. Я указал Button в Alert Box, если пользователь click на yes, то я создаю Intent, иначе я хочу, чтобы пользователь оставался на текущей деятельности.Как отображать предупреждающее сообщение при нажатии кнопки «Назад»?

В настоящее время отображается следующее сообщение об ошибке.

android.view.WindowLeaked: Activity checkout.Checkout has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{100e8093 V.E..... R.....I. 0,0-1080,476} that was originally added here 
      at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363) 
      at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271) 
      at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85) 
      at android.app.Dialog.show(Dialog.java:298) 
      at android.support.v7.app.AlertDialog$Builder.show(AlertDialog.java:953) 

Код.

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

    AlertDialog.Builder alertDialog2 = new AlertDialog.Builder(this); 
    alertDialog2.setTitle("Delete Data"); 
    alertDialog2.setMessage("Are you sure you want to go back?."); 
    // Add the buttons 
    alertDialog2.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      // User clicked OK button 
      //Here i am doing JSON Stuff 
      JSONObject commandData = new JSONObject(); 

     } 
    }); 
    alertDialog2.show(); 
+0

Удалите super.onBackPressed(); от onBackPressed метод –

+0

Спасибо! позвольте мне попробовать это – Kirmani88

ответ

2

Комментарий эта линия:

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

    AlertDialog.Builder alertDialog2 = new AlertDialog.Builder(this); 
    alertDialog2.setTitle("Delete Data"); 
    alertDialog2.setMessage("Are you sure you want to go back?."); 
    // Add the buttons 
    alertDialog2.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      // User clicked OK button 
      //Here i am doing JSON Stuff 
      JSONObject commandData = new JSONObject(); 

     } 
    }); 

    alertDialog2.setNegativeButton("No",new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      YourClass.super.onBackPressed(); 

     } 
    }; 
    alertDialog2.show(); 
Смежные вопросы