Dialog的基础使用形式

1、双选项Dialog

这里写图片描述

2、三选项Dialog

这里写图片描述

3、列表Dialog

这里写图片描述

4、单选Dialog

这里写图片描述

5、多选Dialog

这里写图片描述

6、等待Dialog

这里写图片描述

7、进度条Dialog

这里写图片描述

8、输入框Dialog

这里写图片描述

9、自定义Dialog

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.admin.vip_09.MainActivity">

    <Button
        android:id="@+id/dialog1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="双选项Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="三选项Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="列表Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="单选Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="多选Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="等待Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="进度条Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog8"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="输入Dialog"
        android:textAllCaps="false"
        />

    <Button
        android:id="@+id/dialog9"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="自定义Dialog"
        android:textAllCaps="false"
        />
</LinearLayout>
public class MainActivity extends AppCompatActivity {


    private AlertDialog.Builder mBuilder;
    private String[] listItem = {"选项1", "选项2", "选项3", "选项4"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.dialog1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);

                mBuilder.setTitle("一个普通双选项的Dialog");
                mBuilder.setMessage("啦啦啦,嘤嘤嘤");

                mBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                mBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                //false : 按空白部分不能取消Dialog,必须选择两个Button中的其中一个。
                mBuilder.setCancelable(false);

                mBuilder.show();
            }
        });

        findViewById(R.id.dialog2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);

                mBuilder.setTitle("一个普通双选项的Dialog");
                mBuilder.setMessage("啦啦啦,嘤嘤嘤");

                mBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                mBuilder.setNeutralButton("咦", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                mBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                //false : 按空白部分不能取消Dialog,必须选择两个Button中的其中一个。
                mBuilder.setCancelable(false);

                mBuilder.show();
            }
        });

        findViewById(R.id.dialog3).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);

                mBuilder.setTitle("我是列表Dialog");
                mBuilder.setItems(listItem, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,
                                "你点击了" + listItem[which],
                                Toast.LENGTH_SHORT).show();
                    }
                });

                mBuilder.show();
            }
        });

        findViewById(R.id.dialog4).setOnClickListener(new View.OnClickListener() {
            int choice = -1;

            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);

                mBuilder.setTitle("我是单选的Dialog");

                //checkedItem为默认第一次进入的选项,从0~n-1,-1为不选择。
                mBuilder.setSingleChoiceItems(listItem, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        choice = which;
                        Toast.makeText(MainActivity.this,
                                "你选择了" + listItem[which],
                                Toast.LENGTH_SHORT).show();
                    }
                });

                mBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,
                                "你选择了" + listItem[choice],
                                Toast.LENGTH_SHORT).show();
                    }
                });

                mBuilder.show();
            }
        });

        findViewById(R.id.dialog5).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);

                mBuilder.setTitle("我是一个多选的Dialog");

                final ArrayList<String> arrayList = new ArrayList();

                //初始值为false,默认不选中选项,切记不要数组越界,与选项数组对应
                boolean[] choiceSet = {false, false, false, false};

                mBuilder.setMultiChoiceItems(listItem, choiceSet, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                        if(isChecked) {
                            arrayList.add(listItem[which] + " ");
                        }
                    }
                });

                mBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String str = "";
                        for(int i = 0; i < arrayList.size(); i++) {
                            str = str + arrayList.get(i);
                        }

                        Toast.makeText(MainActivity.this,"你选择了" + str, Toast.LENGTH_SHORT).show();
                    }
                });

                mBuilder.show();
            }
        });

        findViewById(R.id.dialog6).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);

                progressDialog.setTitle("我是等待的Dialog");
                progressDialog.setMessage("等待中....");

                progressDialog.setIndeterminate(false);
                progressDialog.setCancelable(true);

                progressDialog.show();
            }
        });

        findViewById(R.id.dialog7).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final int max = 100;

                final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);

                progressDialog.setTitle("我是一个进度条Dialog");
                progressDialog.setProgress(0);
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.setMax(max);

                progressDialog.show();

                //不要忘记start!!!!
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        int progress = 0;
                        try {
                            while (progress < max) {
                                Thread.sleep(500);
                                progress++;
                                progressDialog.setProgress(progress);
                            }
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }

                        progressDialog.dismiss();
                    }
                }).start();

            }
        });

        findViewById(R.id.dialog8).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);
                final EditText editText = new EditText(MainActivity.this);
                editText.setHint("请输入....");

                mBuilder.setTitle("我是一个可输入的Dialog");
                mBuilder.setView(editText);
                mBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,editText.getText().toString(), Toast.LENGTH_SHORT).show();
                    }
                });

                mBuilder.show();
            }
        });

        findViewById(R.id.dialog9).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBuilder = new AlertDialog.Builder(MainActivity.this);
                mBuilder.setTitle("我是一个自定的Dialog");

                mBuilder.setView(R.layout.layout_dialog);

                mBuilder.setPositiveButton("可爱", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                mBuilder.setNeutralButton("不可爱", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

                mBuilder.show();
            }
        });
    }

}

猜你喜欢

转载自blog.csdn.net/Reserve_Scale/article/details/79868171