2014-09-29 115 views
87

我需要向用戶顯示一條短信,在我的Android應用程序上點擊一個按鈕,在IOS上我只需創建一個AlertView,它使用起來很簡單,但對於Android我很掙扎,因爲解決方案似乎比x10難多了。我看到我需要使用DialogFragment,但我無法理解如何使其工作,有人可以解釋嗎?另外,我的解決方案是否正確,還是有更簡單的方式向用戶顯示簡單的文本消息?Android簡單警報對話框

回答

275

你可能只需要做到這一點在你的onClick

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); 
alertDialog.setTitle("Alert"); 
alertDialog.setMessage("Alert message to be shown"); 
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 
alertDialog.show(); 

不知從哪裏看到,你需要爲DialogFragment簡單示出警報知道。

希望這會有所幫助。

+6

僅供參考 - 在谷歌的Android開發人員網站上的第一個例子說明如何使用片段來做到這一點:http://developer.android.com /guide/topics/ui/dialogs.html 我認爲這可能是導致開發人員認爲他需要爲基本AlertDialog使用片段的原因。我今天搜索,也許是這樣想的。 – raddevus 2016-02-22 21:14:24

+1

最好在構建器上設置屬性而不是alertDialog實例! – alexbirkett 2017-10-25 10:14:42

12

沒有我的朋友它很簡單,請嘗試使用此:

AlertDialog alertDialog = new AlertDialog.Builder(AlertDialogActivity.this).create(); 
alertDialog.setTitle("Alert Dialog"); 
alertDialog.setMessage("Welcome to dear user."); 
alertDialog.setIcon(R.drawable.welcome); 

alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
     Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show(); 
    } 
}); 

alertDialog.show(); 

tutorial展示如何使用XML創建自定義對話框,然後告訴他們作爲一個警告對話框。

+0

你還沒有通過哪個按鈕。 – Leon 2015-12-10 09:28:19

4

您可以輕鬆製作自己的'AlertView'並在任何地方使用。

alertView("You really want this?"); 

一旦實現:

private void alertView(String message) { 
AlertDialog.Builder dialog = new AlertDialog.Builder(context); 

dialog.setTitle("Hello") 
    .setIcon(R.drawable.ic_launcher) 
    .setMessage(message) 
// .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
//  public void onClick(DialogInterface dialoginterface, int i) { 
//   dialoginterface.cancel(); 
//   }}) 
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialoginterface, int i) {     
     }    
     }).show(); 

}