AlertDialog的六种创建方式

2018-10-28 23:04:24

参考地址  AlertDialog的六种创建方式


创建AlertDialog的步骤:

  1、创建AlertDialog.Builder对象

  2、调用Builder对象的setTitle方法设置标题,setIcon方法设置图标

  3、调用Builder相关方法如setMessage方法、setItems方法、setSingleChoiceItems方法、setMultiChoiceItems方法、setAdapter方法、setView方法设置不同类型的对话框内容。

  4、调用setPositiveButton、setNegativeButton、setNeutralButton设置多个按钮

  5、调用Builder对象的create()方法创建AlertDialog对象

  6、调用AlertDialog对象的show()方法将对话框显示出来

一、setMessage:设置对话框内容为简单文本内容

复制代码

    // 创建构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);        // 设置参数
        builder.setTitle("请做出选择").setIcon(R.drawable.ic_launcher)
                .setMessage("我美不美")
                .setPositiveButton("美", new OnClickListener() {// 积极
                            @Override                            public void onClick(DialogInterface dialog,                                    int which) {                                // TODO Auto-generated method stub
                                Toast.makeText(MainActivity.this, "恭喜你答对了", 0)
                                        .show();
                            }
                        }).setNegativeButton("不美", new OnClickListener() {// 消极
                            @Override                            public void onClick(DialogInterface dialog,                                    int which) {                                // TODO Auto-generated method stub
                                Toast.makeText(MainActivity.this, "一点也不老实", 0)
                                        .show();
                            }
                        }).setNeutralButton("不知道", new OnClickListener() {// 中间级
                            @Override                            public void onClick(DialogInterface dialog,                                    int which) {                                // TODO Auto-generated method stub
                                Toast.makeText(MainActivity.this, "快睁开眼瞅瞅", 0)
                                        .show();
                            }
                        });
        builder.create().show();

复制代码

运行截图:

        

二、setItem:设置文本框内容为简单列表项

 

复制代码

    // 创建数据
        final String[] items = new String[] { "北京", "上海", "广州", "深圳" };        // 创建对话框构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);        // 设置参数
        builder.setIcon(R.drawable.ic_launcher).setTitle("提示")
                .setItems(items, new OnClickListener() {

                    @Override                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, items[which],
                                Toast.LENGTH_SHORT).show();
                    }
                });
        builder.create().show();

复制代码

运行截图:

        

 

三、setSingleChoiceItems()设置对话框内容为单选列表项

复制代码

    // 创建数据
        final String[] items = new String[] { "北京", "上海", "广州", "深圳" };        // 创建对话框构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);        // 设置参数
        builder.setIcon(R.drawable.ic_launcher).setTitle("提示")
                .setSingleChoiceItems(items, 0, new OnClickListener() {

                    @Override                    public void onClick(DialogInterface dialog, int which) {                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, items[which],
                                Toast.LENGTH_SHORT).show();
                    }
                });
        builder.create().show();

复制代码

运行截图:

        

四、setMultiChoiceItems()设置对话框内容为多选项列表

复制代码

    // 创建数据
        final String[] items = new String[] { "北京", "上海", "广州", "深圳" };        // 创建对话框构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.ic_launcher)
                .setTitle("提示")
                .setMultiChoiceItems(items,                        new boolean[] { true, true, false, false, false },                        new OnMultiChoiceClickListener() {

                            @Override                            public void onClick(DialogInterface dialog,                                    int which, boolean isChecked) {                                // TODO Auto-generated method stub
                                if (isChecked) {
                                    Toast.makeText(MainActivity.this,
                                            items[which], 0).show();
                                }
                            }
                        });
        builder.create().show();

复制代码

运行截图:

        

五、setAdapter()设置对话框内容为自定义列表项(这里是一个布局)

复制代码

    // 创建数据
        final String[] items = new String[] { "北京", "上海", "广州", "深圳" };        // 创建对话框构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("提示")
                .setIcon(R.drawable.ic_launcher)
                .setAdapter(                        new ArrayAdapter<String>(MainActivity.this,
                                R.layout.item, R.id.tv, items),                        new OnClickListener() {

                            @Override                            public void onClick(DialogInterface dialog,                                    int which) {                                // TODO Auto-generated method stub
                                Toast.makeText(MainActivity.this, items[which],                                        0).show();
                            }
                        });
        builder.create().show();

复制代码

运行截图:

        

六、setView()设置对话框为自定义View

复制代码

    // 创建对话框构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);        // 获取布局
        View view2 = View.inflate(MainActivity.this, R.layout.login, null);        // 获取布局中的控件
        final EditText username = (EditText) view2.findViewById(R.id.username);        final EditText password = (EditText) view2.findViewById(R.id.password);        final Button button = (Button) view2.findViewById(R.id.btn_login);        // 设置参数
        builder.setTitle("Login").setIcon(R.drawable.ic_launcher)
                .setView(view2);        // 创建对话框
        final AlertDialog alertDialog = builder.create();
        button.setOnClickListener(new View.OnClickListener() {

            @Override            public void onClick(View v) {                // TODO Auto-generated method stub
                String uname = username.getText().toString().trim();
                String psd = password.getText().toString().trim();                if (uname.equals("shenhua") && psd.equals("123456")) {
                    Toast.makeText(MainActivity.this, "登录成功", 0).show();
                }
                Toast.makeText(MainActivity.this, "登录失败", 0).show();
                alertDialog.dismiss();// 对话框消失            }

        });
        alertDialog.show();

复制代码

运行截图:

        

  • 2017-04-06 15:15:16

    PHP-FPM配置及使用总结

    PHP-FPM配置及使用总结: PHP-FPM是一个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch到PHP源代码中,然后再行编译才能使用。而现在我们可以在PHP 5.3.2及更新版本中直接开启并使用即可,因为PHP从该版本已经将其收入到软件包中,所以其不再是补丁包的存在了。

  • 2017-04-07 23:18:29

    mac 安装composer

    当你下载了 composer.phar 后,可以将它放在目录中,但每次当你建立新目录时,你必須再复制一个副本到新目录中,这样比较麻烦。所以最佳做法是将它放到 usr/local/bin 目录中中,成为全域指令。

  • 2017-04-12 10:52:35

    最全面的Android Webview详解

    现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图

  • 2017-04-12 11:22:43

    WebView你真的熟悉吗?看了才知道

    在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。下面总结一下使用webview遇到的那些事、那些坑。

  • 2017-04-12 11:28:14

    史上最全webview详解

    WebView在现在的项目中使用的频率应该还是非常高的。 我个人总觉得HTML5是一种趋势。找了一些东西,在此总结。 本篇最后有一个非常不错 的 Html5Activity 加载类,不想看的可以直接跳下载。

  • 2017-04-12 23:11:59

    Android Studio签名打包的两种方式

    给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。

  • 2017-04-13 10:57:08

    webstorm 怎么关闭jshint

    You need to configure the inspections in Settings/Editor/Inspections, then in the list on the right, find JavaScript/JavaScript validity issues. That worked for me to remove the Chai warnings. (I am using the WebStorm 11 EAP at the moment.)