2016-08-29 5 views
0

Back Button을 누를 때마다 사용자에게 Alert Message을 표시해야합니다. 다음 코드를 작성한 후을 잠시 표시 한 다음 리디렉션합니다. ButtonAlert Box에 지정했습니다. 사용자가 인 경우 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(); 
관련 문제