2011-04-27 301 views
143

我想要一個AlertDialog構建器,只有一個按鈕,說OK或完成或某事,而不是默認的是和否。 這可以用標準的AlertDialog完成,還是必須使用別的東西?Android AlertDialog單按鈕

回答

318

難道這只是通過只使用一個積極的按鈕?

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage("Look at this dialog!") 
     .setCancelable(false) 
     .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       //do things 
      } 
     }); 
AlertDialog alert = builder.create(); 
alert.show(); 
+0

尼斯簡單解決方案 – 2015-11-04 20:56:22

+1

工程很棒,只要您不介意單個按鈕右對齊。 :( – 2015-12-16 21:23:46

+0

@ScottBiggs對話框中的按鈕對齊由系統決定,可能會在設備,版本和語言(RTL等)之間切換。應用程序不應嘗試設置對齊方式,但意圖(正面,負面等) – aberaud 2016-08-24 21:35:09

42

您可以使用此:

AlertDialog.Builder builder1 = new AlertDialog.Builder(this); 
builder1.setTitle("Title"); 
builder1.setMessage("my message"); 
builder1.setCancelable(true); 
builder1.setNeutralButton(android.R.string.ok, 
     new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
     dialog.cancel(); 
    } 
}); 

AlertDialog alert11 = builder1.create(); 
alert11.show(); 
-6

在單爲Android,你可以這樣做:

var ad = new AlertDialog.Builder(this); 
ad.SetTitle("Title"); 
ad.SetMessage("Message"); 
ad.SetPositiveButton("OK", delegate { ad.Dispose(); }); 
ad.Show(); 
4

代碼重用,你可以把它在這樣

的方法
public static Dialog getDialog(Context context,String title, String message, DialogType typeButtons) { 

     AlertDialog.Builder builder = new AlertDialog.Builder(context); 
     builder.setTitle(title) 
     .setMessage(message) 
       .setCancelable(false); 

     if (typeButtons == DialogType.SINGLE_BUTTON) { 
      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         //do things 
        } 
       }); 
     } 

     AlertDialog alert = builder.create(); 

     return alert; 
    } 

    public enum DialogType { 
     SINGLE_BUTTON 

    } 

//其他代碼重用問題,如usin用於提供反饋的g接口也非常出色。

+1

我打電話給這太複雜了,而不是代碼重用。這太複雜了,不能維護... – 2014-10-16 08:15:03

+0

@MarianPaździoch你爲什麼這麼想? – MSaudi 2015-04-09 07:21:08

+0

如果我想添加四個按鈕怎麼辦? – 2017-04-10 06:02:41

10

另一種方法

Builder alert = new AlertDialog.Builder(ActivityName.this); 
alert.setTitle("Doctor"); 
alert.setMessage("message"); 
alert.setPositiveButton("OK",null); 
alert.show(); 

獎金

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this); 
builder.setMessage("Message dialog with three buttons"); 

     builder.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       //do things 
      } 
     }); 

     builder.setNegativeButton("NO", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       //do things 
      } 
     }); 

     builder.setNeutralButton("CANCEL", new DialogInterface.OnClickListener()  { 
      public void onClick(DialogInterface dialog, int id) { 
       //do things 
      } 
     }); 
AlertDialog alert = builder.create(); 
alert.show(); 

現在它是由你使用一個,兩個或三個按鈕..

7

這我離得越近d獲取到一個班輪這應該是如果Android的API是任何智能:

new AlertDialog.Builder(this) 
    .setMessage(msg) 
    .setPositiveButton("OK", null) 
    .show(); 
+0

這不會導致一個按鈕是正確的嗎? – 2017-08-03 17:10:17

0

它非常簡單

new AlertDialog.Builder(this).setView(input).setPositiveButton("ENTER",    
         new DialogInterface.OnClickListener()      
         { public void onClick(DialogInterface di,int id)  
          { 
           output.setText(input.getText().toString()); 
          } 
         } 
        ) 
     .create().show(); 

如果您想閱讀完整的節目在這裏看到: Program to take input from user using dialog and output to screen