android---AlertDialog對話框解析

android提供了四類經常使用的對話框
1.AlertDialog,功能最豐富,實際運用最普遍
2.progressDialog,進度條對話框
3.DatePickerDialog,日期選擇對話框
4.TimePickerDialog,時間選擇對話框
這裏主要介紹第一種,剩下的三種都是第一種的子類,因此其方法,均可以直接使用.php

建立一個對話框通常須要下面幾個步驟
1.建立AlertDialog.Builder對象
2.對AlertDialog.Builder經過SetTitle來設置標題,SetIcon來設置圖標
3.調用AlertDialog.Builder相關方法來設置內容
4.調用setPositiveButton或者setBegativeButton設置肯定和取消按鈕,其中還一個裝飾性按鈕,就不介紹了
5.調用AlertDialog.Builder的create方法進行建立,再調用AlertDialog的show方法便可顯示出來.

下面根據實例一塊兒來看看具體用法java

簡單文本對話框

定義一個Button爲其添加點擊事件,從而啓動AlertDialog對話框,並添加監聽事件android

public void simpledialog1(View view){
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("簡單文本對話框")
                //設置圖標
                .setIcon(R.mipmap.ic_launcher)
                //設置爲簡單文本對話框
                .setMessage("這是一個簡單文本對話框");
                //設置兩個按鈕
                builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
                    }
                });
                builder.create().show();

    }

這裏寫圖片描述

列表項對話框

和上面的文本對話框不一樣,列表像是經過一個數組來顯示列表ios

public void simpledialog2(View view){
        //列表項須要傳入一個數組用於顯示列表
        final String items[] = {"java","php","android","ios"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("簡單列表項對話框")
                        //設置圖標
                .setIcon(R.mipmap.ic_launcher)
                        //設置爲簡單列表項對話框
                .setItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "你點擊了" + items[which], Toast.LENGTH_SHORT).show();
                    }
                });
        //設置兩個按鈕
        builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
            }
        });
        builder.create().show();

    }

這裏寫圖片描述

單選項對話框

和列表項差很少,可是功能足足強了好多,由於傳入的參數能夠爲數組,也能夠是Cursor的查詢結果集,還可使ListAdapter數組

public void simpledialog3(View view){
        //列表項須要傳入一個數組用於顯示列表
        final String items[] = {"java","php","android","ios"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("簡單列表項對話框")
                        //設置圖標
                .setIcon(R.mipmap.ic_launcher)
                        //設置爲簡單單選列表項對話框,1表示默認選擇第二個
                .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "你點擊了" + items[which], Toast.LENGTH_SHORT).show();
                    }
                });
        //設置兩個按鈕
        builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
            }
        });
        builder.create().show();

    }

這裏寫圖片描述

多選項對話框

多選和單選差很少,就多了個Boolean的數組來控制初始選擇值markdown

public void simpledialog4(View view){
        //列表項須要傳入一個數組用於顯示列表
        final String items[] = {"java","php","android","ios"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("簡單列表項對話框")
                        //設置圖標
                .setIcon(R.mipmap.ic_launcher)
                        //設置爲簡單多選列表項對話框,boolean型變量表示初始選擇的位置
                .setMultiChoiceItems(items, new boolean[]{false, false, false, true}, null);
        //設置兩個按鈕
        builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
            }
        });
        builder.create().show();

    }

這裏寫圖片描述

另外還可使用SetAdapter方法制做自定義列表項的對話框
或者使用SetView來製做自定義View的對話框
之後的實例中會逐漸都應用到的,但願你們繼續關注

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。ide

相關文章
相關標籤/搜索