安卓開發-對話框的簡單使用

《一:對話框創建的常規步驟》

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

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章