Android中的各種Dialog

openkk 12年前發布 | 47K 次閱讀 Android Android開發 移動開發

   下面是自己總結的Android常用的幾種Dialog:

1.AlertDialog android中功能最豐富,用途最廣的對話框。

 // 1 創建一個Builder  
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    // 2 給Builder設置屬性
    builder.setTitle("Java培訓");// 設置Dialog的標題
        builder.setMessage("訪問OSC的網頁");// 設置Dialog的信息
        builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {// 設置確定按鈕

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "訪問OSC的網頁", 0).show();
                    }
                });
        builder.setNeutralButton("隱藏", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
    //從上我們可以看出Dialog的按鈕一般分為了三種,確定builder.setPositiveButton(),隱藏builder.setNeutralButton,取消builder.setNegativeButton
    // 3 創建Dialog
        AlertDialog dialog = builder.create();

    // 4 顯示Dialog   
    dialog.show();

2.ListDialog,設置選項的時候用如下代碼:

final String[] items = { "java", "donet", "php" };
builder.setItems(items, new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), items[which], 0).show();
            }
        });

3.singleItemDialog,這樣子能夠讓選項以單選框的樣式呈現出來:

builder.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), items[which], 0).show();
            }
        });

4.多選框的Dialog

final String[] items = { "java", "donet", "php" };
        final boolean[] checkedItems = new boolean[] { true, false, false };
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("選擇語言");
        builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Toast.makeText(getApplicationContext(), items[which] + isChecked, 0).show();
            }
        });

5.進度條的dialog

ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 設置為水平進度條
        progressDialog.setTitle("正在下載。。。");
        progressDialog.setMax(100);// 設置進度條的最大值
        progressDialog.setCancelable(false);// 設置回退鍵失效

        progressDialog.setButton("取消", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        progressDialog.show();
        progressDialog.setProgress(50);// 設置進度條的當前刻度

注意的是Dialog是activity的一個控件,彈出Dialog的時候,activity是不會失去焦點的,也就是說activity不會調用onPause()方法

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!