一個鍵
import android.support.v7.app.AlertDialog;
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My title");
builder.setMessage("This is my message.");
// add a button
builder.setPositiveButton("OK", null);
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
兩個按鈕
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("AlertDialog");
builder.setMessage("Would you like to continue learning how to use Android alerts?");
// add the buttons
builder.setPositiveButton("Continue", null);
builder.setNegativeButton("Cancel", null);
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
三個按鈕
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Notice");
builder.setMessage("Launching this missile will destroy the entire universe. Is this what you intended to do?");
// add the buttons
builder.setPositiveButton("Launch missile", null);
builder.setNeutralButton("Remind me later", null);
builder.setNegativeButton("Cancel", null);
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
如果按鈕文本太長,以適應所有的水平,那麼它會自動獲得的三個按鈕垂直列布局。
處理按鈕點擊
的OnClickListener
是在上述實施例null
。您可以用監聽器替換null
,以便在用戶點擊按鈕時執行某些操作。例如:
builder.setPositiveButton("Launch missile", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something like...
launchMissile();
}
});
回事
還有更多品種的對話框,你可以做的。請參閱documentation尋求幫助。
由於在AlertDialog
中只支持三個按鈕,下面是帶有列表的對話框的示例。
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose an animal");
// add a list
String[] animals = {"horse", "cow", "camel", "sheep", "goat"};
builder.setItems(animals, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0: // horse
case 1: // cow
case 2: // camel
case 3: // sheep
case 4: // goat
}
}
});
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
用於無線電按鈕列表和複選框列表的類似的例子見this answer。
注
- 使用字符串資源,而不是硬編碼的字符串。
- 您可以將所有內容都包裝在擴展
DialogFragment
的類中,以便輕鬆重用對話框。 (參見this尋求幫助。)
這些實施例,以API 11使用的載體庫,支持版本之前所以進口應該是
import android.support.v7.app.AlertDialog;
我在上面爲了簡潔的例子省略onCreate
方法。那裏沒有什麼特別的。
也
哪種觀點,我需要傳遞給對話框看到了嗎? –
@Eduardo Lion,我假設你指的是'showAlertDialogButtonClicked(View view)'中的'view'。這只是按鈕的onClick()方法中的按鈕。你可以忽略它。該對話框根本不使用它。該對話只需要Context,在這種情況下是'this',即Activity。 – Suragch