2014-09-26 48 views
0

所以我試圖讓我的手使用戶退出應用程序時出現一個對話框,它會問這個問題你確定要退出嗎?應用程序退出但它不顯示對話框。試圖讓對話框出現

這裏是我的代碼

public void exit(View view) { 

     // showDialog(ALERT_DIALOG1); 
      final AlertDialog.Builder builder = new AlertDialog.Builder(Register.this); 
      builder.setCancelable(false); 
      builder.setMessage("Are you sure you want to quit"); 
      builder.setPositiveButton("Yes", null); 
    }    
      public void onClick(DialogInterface dialog, int id) { 
        Register.this.finish(); 
//     builder.show(); 

} 
      }; 
+1

你是怎麼調用這個函數的? – Pavlos 2014-09-26 14:32:31

回答

0

廣場這對你的退出功能:

AlertDialog.Builder builder = new AlertDialog.Builder(Register.this); 
builder.setCancelable(false); 
builder.setMessage("Are you sure you want to quit"); 

builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
    // Setting positive button click action 
    public void onClick(DialogInterface dialog, int id) { 
     Register.this.finish(); 
    } 
}); 

// Creating and then showing AlertDialog 
AlertDialog alert = builder.create(); 
alert.show(); 
+0

非常感謝!對於我的第一個問題,我很驚訝這個地方真棒。但你能解釋我做錯了什麼嗎?我喜歡學習 – 2014-09-26 14:51:18

+0

不客氣。兄弟你只設置生成器AlertyDialog顯示沒有相關的代碼。我補充一點,你也以錯誤的方式設置了正面的按鈕clicklistener。我也糾正這一點。 – 2014-09-26 15:01:51

+0

我也對該行添加註釋。你可以檢查。不要忘記接受/剔我的回答@HarshJoshi :) – 2014-09-26 15:05:06

0

此代碼將檢查後按下按鈕,創建之前在MessageBox來。

@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); 
     } 

    }