2012-12-26 18 views
6

मेरे पास एक गतिविधि है जिसमें जब मैं बैक बटन दबाता हूं तो यह चेतावनी संवाद नहीं दिखाता है। समस्या क्या हो सकती है? यहाँ मेरी कोडगतिविधि ऑनबैकप्रेस चेतावनी संवाद नहीं दिखा रहा है

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(LogFish.this); 

       // set title 
       alertDialogBuilder.setTitle("Exit"); 
       alertDialogBuilder.setIcon(R.drawable.ic_action_search); 

       // set dialog message 
       alertDialogBuilder 
        .setMessage("This action will cause you to abandon all changes on current new fish log. \n\nAre you sure you want to exit?") 
        .setCancelable(false) 
        .setPositiveButton("YES",new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog,int id) { 
          // if this button is clicked, close 
          startActivity(new Intent(LogFish.this,MainActivity.class)); 
          finish(); 

         } 
         }) 
        .setNegativeButton("NO",new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog,int id) { 
          // if this button is clicked, just close 

          dialog.cancel(); 
         } 
        }); 

        // create alert dialog 
        AlertDialog alertDialog = alertDialogBuilder.create(); 

        // show it 
        alertDialog.show(); 

        } 
+0

कृपया जांच करें() .... –

+0

चेक, अगर आप क्योंकि आप मुख्य थ्रेड पर चलते दुर्घटना नहीं करते हैं? – IamStalker

+2

वास्तव में इसे बुलाया जाता है लेकिन तुरंत आपकी गतिविधि समाप्त हो जाती है क्योंकि आपने 'super.onBackPressed(); 'लिखा है। यदि आप इसे हटाते हैं तो आपकी गतिविधि वापस नहीं समाप्त होती है और आपका संवाद दिखाया जाता है। – user370305

उत्तर

13

आप super.onBackPressed() निकालने के लिए है; यदि आपके वापस कुंजी OnKeyDown में कब्जा नहीं कर रहा है

0
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    //Handle the back button 
    if(keyCode == KeyEvent.KEYCODE_BACK) { 
     //Ask the user if they want to quit 
     new AlertDialog.Builder(this) 
     .setIcon(android.R.drawable.ic_dialog_alert) 
     .setTitle(R.string.quit) 
     .setMessage(R.string.really_quit) 
     .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 

       //Stop the activity 
       YourClass.this.finish();  
      } 

     }) 
     .setNegativeButton(R.string.no, null) 
     .show(); 

     return true; 
    } 
    else { 
     return super.onKeyDown(keyCode, event); 
    } 

} 
2
@Override 
public void onBackPressed() { 

    final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Title"); 
    builder.setMessage("Your Message"); 
    builder.setIcon(android.R.drawable.ic_dialog_alert); 

    builder.setPositiveButton("YES", new OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 
      //implement your logic for YES 
     } 
    }); 

    builder.setNegativeButton("NO", new OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 
      //implement your logic for NO 
     } 
    }); 
    builder.setOnCancelListener(null); 
    builder.show(); 
} 
संबंधित मुद्दे