AlertDialog建立對話框的測試

AlertDialog的功能是很是強大的,它能夠建立各類對話框,它的結構分爲:圖標區、標題區、內容區、按鈕區共四個區域。以這樣的思路區建立AlertDialog是很是簡單的。android

建立AlertDialog的七大步驟佈局

  1. 建立AlertDialog.Builder對象
  2. 調用AlertDialog.Builder對象的setTitle()或setCustomTitle()方法設置標題
  3. 調用AlertDialog.Builder的setIcon方法設置圖標
  4. 調用AlertDialog.Builder相關方法如setMessage方法、setItems方法、setSingleChoiceItems方法、setMultiChoiceItems方法、setAdapter方法、setView方法設置不一樣類型的對話框內容。
  5. 調用setPositiveButton、setNegativeButton、setNeutralButton或者setNeutralButton()方法設置多個按鈕
  6. 調用Builder對象的create()方法建立AlertDialog對象
  7. 調用AlertDialog.Builder對象的create()方法建立AlertDialog對象,而後調用show()方法將對話框顯示出來

對步驟4中的六種方法進行簡單解析:ui

  • setMessage方法設置對話內容爲簡單文本
  • setItems方法設置對話框內容爲簡單列表項
  • setSingleChoiceItems方法設置對話框內容爲單選列表項
  • setMultiChoiceItems方法設置對話框內容爲多選列表項
  • setAdapter方法設置對話框內容爲自定義列表項
  • setView方法設置對話框內容爲自定義View

下面對六種方法進行一一實例演示this

先建立一個佈局文件,以下spa

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- 顯示一個普通的文本編輯框組件 -->
    <EditText
        android:id="@+id/show"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"/>
    <!-- 定義一個普通的按鈕組件 -->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="simple"
        android:text="簡單對話框"/>
    <!-- 定義一個普通的按鈕組件 -->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="simpleList"
        android:text="簡單列表項對話框" />
    <!-- 定義一個普通的按鈕組件 -->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="singleChoice"
        android:text="單選列表項對話框" />
    <!-- 定義一個普通的按鈕組件 -->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="multiChoice"
        android:text="多選列表項對話框" />
    <!-- 定義一個普通的按鈕組件 -->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="customList"
        android:text="自定義列表項對話框" />
    <!-- 定義一個普通的按鈕組件 -->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="customView"
        android:text="自定義View對話框" />
</LinearLayout>

 

1.setMessage方法3d

public void simple(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("簡單對話框")
                //設置圖標
                .setIcon(R.drawable.tools)
          .setMessage("我沒有掉頭髮"); // 爲AlertDialog.Builder添加按鈕 setPositiveButton(builder); // 爲AlertDialog.Builder添加按鈕 setNegativeButton(builder).create().show();

 

2.setItems方法code

//簡單列表項對話框
    private String[] items = new String[]{"說好不哭", "等你下課",
            "七里香", "可愛女人"};
    public void simpleList(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("簡單列表項對話框")
                //設置圖標
                .setIcon(R.drawable.tools)
                //設置簡單的列表項內容
                .setItems(items, (dialog, wh) ->
                        show.setText("你選中了《" + items[wh] + "》"));
        // 爲AlertDialog.Builder添加「肯定」按鈕
        setPositiveButton(builder);
        // 爲AlertDialog.Builder添加「取消」按鈕
        setNegativeButton(builder).create().show();
    }

 

 

3.setSingleChoiceItems方法orm

//單選列表項對話框
    public void singleChoice(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("單選列表項對話框")
                //設置標題
                .setIcon(R.drawable.tools)
                //設置單選列表項,默認選中第二項(索引爲1)
                .setSingleChoiceItems(items, 1, (dialog, which) ->
                        show.setText("你選中了《" + items[which] + "》"));
        // 爲AlertDialog.Builder添加「肯定」按鈕
        setPositiveButton(builder);
        // 爲AlertDialog.Builder添加「取消」按鈕
        setNegativeButton(builder).create().show();
    }

 

 4.setMultiChoiceItems方法xml

public void multiChoice(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("多選列表項對話框")
                //設置標題
                .setIcon(R.drawable.tools)
                //設置多選列表項,設置勾選第二項、第四項
                .setMultiChoiceItems(items, new boolean[]{false, true, false, true}, null);
        // 爲AlertDialog.Builder添加「肯定」按鈕
        setPositiveButton(builder);
        // 爲AlertDialog.Builder添加「取消」按鈕
        setNegativeButton(builder).create().show();
    }

 

 5.setAdapter方法對象

public void customList(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                //設置對話框標題
                .setTitle("自定義列表項對話框")
                //設置圖標
                .setIcon(R.drawable.tools)
                //設置自定義列表項
                .setAdapter(new ArrayAdapter(this, R.layout.array_item, items), null);
        // 爲AlertDialog.Builder添加「肯定」按鈕
        setPositiveButton(builder);
        // 爲AlertDialog.Builder添加「取消」按鈕
        setNegativeButton(builder).create().show();
    }

 

 6.setView方法

public void customView(View source) {
        //login.xml界面佈局文件
        TableLayout loginForm = (TableLayout) getLayoutInflater().inflate(R.layout.login, null);
        new AlertDialog.Builder(this)
                // 設置對話框的圖標
                .setIcon(R.drawable.tools)
                // 設置對話框的標題
                .setTitle("自定義View對話框")
                // 設置對話框顯示的View對象
                .setView(loginForm)
                // 爲對話框設置一個「肯定」按鈕
                .setPositiveButton("登陸", (dialog, which) -> {
                    // 此處可執行登陸處理
                })
                // 爲對話框設置一個「取消」按鈕
                .setNegativeButton("取消", (dialog, which) -> {
                    // 取消登陸,不作任何事情
                })
                // 建立並顯示對話框
                .create().show();
    }

相關文章
相關標籤/搜索