Android 對話框組件 AlertDialog 四種常用方法

什麼是AlertDialog對話框 ?

在Android中,AlertDialog可以爲當前的界面上顯示一個對話框,而且產生的對話框是在所有界面元素上面的,能夠覆蓋掉其餘組件,所以AlertDialog一般是用於提示一些非常重要的信息或者警告內容。

 


如何使用?

 

AlertDialog的功能十分強大,它不僅可以生成帶按鈕的提示對話框,還可以生成帶列表的列表對話框

對話框區域通常被分爲四個區域,分別是圖標區、標題區、內容區、按鈕區域

 

1.顯示帶確定、取消按鈕的對話框

效果圖:

單擊按鈕後:

 對話框隱藏,提示單擊信息。

 

 實現方法,在XML文件中新建一個按鈕,在Java文件中添加單擊事件響應

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
        alertDialog.setIcon(R.mipmap.advise);
        alertDialog.setTitle("標題");
        alertDialog.setMessage("具體文本");

        alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "您單擊了否按鈕", Toast.LENGTH_SHORT).show();
            }
        });

        alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "您單擊了是按鈕 ", Toast.LENGTH_SHORT).show();
            }
        });
        alertDialog.show();
    }
});

 


2. 顯示帶列表的對話框

效果展示:

單擊按鈕後:

對話框隱藏,提示單擊信息。

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        final String[] items = new String[]{"選項1", "選項2", "選項3","選項4"};

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.advise1);
        builder.setTitle("請選擇選項:");

        builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,
                        "您選擇了" + items[which], Toast.LENGTH_SHORT).show();
            }
        });
        builder.create().show();
    }
});

 


3. 顯示帶單選列表項的對話框

效果展示:

單擊後:

 Java邏輯代碼部分:

button3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        final String[] items = new String[]{"扎克伯格", "喬布斯", "拉里.埃裏森", "安迪.魯賓", "馬雲"};

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.advise2);
        builder.setTitle("如果讓你選擇,你最想做哪一個:");
        builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,
                        "您選擇了" + items[which], Toast.LENGTH_SHORT).show();
            }
        });
        builder.setPositiveButton("確定", null);
        builder.create().show();
    }
});

 


4. 顯示帶多選列表項的對話框

效果展示:

單擊後:

 點擊確定後,顯示:

 Java邏輯代碼:

button4.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        checkedItems = new boolean[]{false, true, false, true, false};
        //各列表項要顯示的內容
        items = new String[]{"開心消消樂", "球球大作戰", "歡樂鬥地主", "夢幻西遊", "超級瑪麗"};

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.advise2);
        builder.setTitle("請選擇您喜愛的遊戲:");
        builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                checkedItems[which] = isChecked;

            }
        });

        builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String result = "";
                for (int i = 0; i < checkedItems.length; i++) {
                    if (checkedItems[i]) {
                        result += items[i] + "、";
                    }
                }
                if (!"".equals(result)) {
                    result = result.substring(0, result.length() - 1);
                    Toast.makeText(MainActivity.this,
                            "您選擇了[ " + result + " ]", Toast.LENGTH_LONG).show();
                }
            }
        });
        builder.create().show();
    }
});

 


總結

 

在Android中,如果需要使用 對話框 組件,來實現一定的功能,就需要用到 AlertDialog

本文主要總結了 AlertDialog 的四種常用方法,以便後續不時之需。

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