对Dialog进行封装

Dialog

对Dialog进行封装_第1张图片
image.png

添加依赖

dependencies {
    // ... other dependencies here
    compile 'com.jiangyy:dialog:1.0.2'
    // implementation 'com.jiangyy:dialog:1.0.2'
}

通用Dailog

下面是基础用法:

new CommonDialog.Builder(this)
        .setTitle("标题")
        .setMessage("这里是提示内容")
        .setPositiveButton("确定", new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                }
        }).setNegativeButton("取消", null).show();

你可以设置标题、内容、确定按钮和取消按钮的文字颜色。例如:

new CommonDialog.Builder(this)
        .setTitle("标题", R.color.colorAccent)
        .setMessage("这里是提示内容", R.color.colorPrimary)
        .setPositiveButton("确定", new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                }
        }, R.color.colorPrimaryDark)
        .setNegativeButton("取消", null, R.color.colorPrimaryDark).show();

单选对话框

单选对话框是从底部出现的一个列表对话框,你仅可以选择一项。当然,你依旧可以设置文字颜色。

new SingleChoiceDialog.Builder(this).setTitle("提示")
                .addList(new String[]{"1", "2", "3"})
                .setOnItemClickListener(new SingleChoiceDialog.OnItemClickListener() {
                    @Override
                    public void OnItemClick(String title, int position) {
                        Toast.makeText(MainActivity.this, title + "," + position, Toast.LENGTH_SHORT).show();
                    }
                })
                .show();

单选对话框需要设置数据源,格式可以使数组、List或者就是一个字符串。你可以通过setOnItemClickListener方法获取到你点击的值,返回值包括值和下标。

new SingleChoiceDialog.Builder(this).setTitle("提示")
                .addList(new ArrayList())
                .setOnItemClickListener(new SingleChoiceDialog.OnItemClickListener() {
                    @Override
                    public void OnItemClick(String title, int position) {
                        Toast.makeText(MainActivity.this, title + "," + position, Toast.LENGTH_SHORT).show();
                    }
                })
                .show();
new SingleChoiceDialog.Builder(this).setTitle("提示")
                .addList("古典风格")
                .setOnItemClickListener(new SingleChoiceDialog.OnItemClickListener() {
                    @Override
                    public void OnItemClick(String title, int position) {
                        Toast.makeText(MainActivity.this, title + "," + position, Toast.LENGTH_SHORT).show();
                    }
                })
                .show();

多选对话框

多选对话框的显示风格和单选对话框相似,不过它可以选择多个,你选择后会返回一个List。

new MultipleChoiceDialog.Builder(this)
                .setTitle("提示")
                .addList(new String[]{"1", "2", "3"})
                .addListener(new MultipleChoiceDialog.ClickListener() {
                    @Override
                    public void OnFinishClick(List data, List data0) {
                        String str = "";
                        for (int index = 0; index < data.size(); index++) {
                            str += "," + data.get(index);
                        }
                        Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
                    }
                }).show();

输入对话框

输入对话框可以输入,获取输入的结果则是通过view.getTag().toString()获得。

new InputDialog.Builder(this)
                .setTitle("请输入")
                .setHint("这里是提示内容")
                .setLines(5)
                .setPositiveButton("确定", new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(MainActivity.this, view.getTag().toString(), Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("取消", null).show();

加载对话框

这是基础用法:

new LoadingDialog.Builder(this).setTitle("正在加载...").show();

如果你还想显示进度也可以,你可以使用showProgress(),例如:

final LoadingDialog.Builder mBuilder = new LoadingDialog.Builder(this);
        mBuilder.setTitle("正在加载ing...");
        mBuilder.showProgress(true).show();

        new Thread(new Runnable() {

            @Override
            public void run() {
                int i = 0;
                while (i < 100) {
                    try {
                        Thread.sleep(200);
                        mBuilder.setProgress(i);
                        i++;
                    } catch (Exception e) {
                    }
                }
                mBuilder.dismiss();
            }
        }).start();

检查更新对话框

我们知道,现在绝大多数APP都有检查更新的功能,当检查到有新版本时,就回显示一个对话框用于显示新版本的信息。检查更新对话框就是一个好看的定制对话框,可以显示图标、标题、内容和两个按钮。使用也很简单:

new UpdateDialog.Builder(this)
                .setIcon(R.mipmap.ic_launcher)
                .setTitle("发现新版本,1.0.1来了")
                .setMessage("【新添】1、添加功能一;\n【修复】2、修复了好几个BUG哟\n【其他】3、你猜更新了什么", R.color.colorAccent)
                .setPositiveButton("立即下载", new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {

                    }
                }).setNegativeButton("以后更新", null).show();

~ 欢迎star Github

你可能感兴趣的:(对Dialog进行封装)