《一:對話框創建的常規步驟》
1.創建builder對象
Builder builder = new Builder(this);
2.爲builder設置組件(title,message,positiveButton,negativeButton,SingleChoiceItems,setMultiChoiceItems)
3.利用builder組件創建對話框對象
AlertDialog dialog = builder.create();
4.顯示對話框
dialog.show();
《二:細節》
1.builder組件支持鏈式編程
2.MainActivity.this.finish():關閉應用
3.dialog.dismiss():關閉對話框
4.按鈕監聽器中重寫的函數:onClick(DialogInterface arg0, int arg1):中int值 確定的是-1,否定的是-2
5.當組件設置了message之後,單選框和多選框就不能正常顯示出來,兩者不能共存。
6.progressDialog不支持鏈式編程
《三:常見三種對話框樣式》
//1.確定,否定對話框
public void openDialogClick(View v){
Builder builder = new Builder(this);
builder.setTitle("提示").
setMessage("殘忍卸載嗎?").
setPositiveButton("是", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "確定了=" + arg1, Toast.LENGTH_SHORT).show();
}
}).
setNegativeButton("否", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "不刪除了=" + arg1, Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
//2.單選對話框
public void openSingleDialogClick(View v){
final String[] items = {"張飛", "趙雲"};
Builder builder = new Builder(this);
builder.setTitle("請選擇人物").
//默認選中items中第一個
setSingleChoiceItems(items, 0, new OnClickListener() {
//參數:對話框對象,items數組的索引
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "當先選中的是:" + items[arg1], Toast.LENGTH_SHORT).show();
}
}).setPositiveButton("確定", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "確定了=" + arg1, Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
//3.多選對話框
public void openMultiDialogClick(View v){
final String[] items = {"今天", "明天", "後天"};
final boolean[] checkedItems = {true, false, true};
Builder builder = new Builder(this);
builder.setTitle("請選擇日期").
setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
//參數:對話框對象,當前items索引,當前索引是否被選中
public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
Toast.makeText(MainActivity.this, "當前選擇日期爲:" + items[arg1], Toast.LENGTH_SHORT).show();
checkedItems[arg1] = arg2;
}
}).setPositiveButton("確定", new OnClickListener() {
//打印所有被選中的日期
public void onClick(DialogInterface arg0, int arg1) {
String result = " ";
for (int i = 0; i < items.length; i++) {
if(checkedItems[i]){
result += items[i] + " ";
}
}
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("取消", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "取消" + arg1, Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openDialogClick"
android:text="打開簡單對話框" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openSingleDialogClick"
android:text="打開單選框" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openMultiDialogClick"
android:text="打開多選框" />
《四:進度條對話框(原地轉圈的那種)》
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openProgressDialogClick"
android:text="進度條對話框" />
public void openProgressDialogClick(View v){
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("提示");
dialog.setMessage("請耐心等待");
dialog.show();
//設置定時器(五秒後自動退出對話框)
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
dialog.dismiss();
}
});
}
}, 5000);
}