常规dialog

一般作为提示使用

xml文件

activity_main.xml

    

MainActivity.Java

    /**     *常规对话框的点击事件     * @param view     */    public void bt1(View view) {        new AlertDialog.Builder(this)                //图标                .setIcon(R.drawable.ic_launcher_background)                //标题                .setTitle("吃饭")                //不可点击外部区域取消对话框                .setCancelable(false)                //内容                .setMessage("你吃饭了吗")                //第一个参数选项,第二个参数为该选项的点击事件                .setPositiveButton("吃了", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialogInterface, int i) {                        Toast.makeText(MainActivity.this, "吃这么快", Toast.LENGTH_SHORT).show();                    }                })                //第一个参数选项,第二个参数为该选项的点击事件                .setNegativeButton("没吃", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialogInterface, int i) {                        Toast.makeText(MainActivity.this, "还不吃", Toast.LENGTH_SHORT).show();                    }                })                //展示                .show();    }

效果图

 

带选项列表的dialog

一个选择类的对话框

xml文件

activity_main.xml

 

MainActivity.Java

这个dialog为单选框,如需多选,setSingleChoiceItems方法替换为setMultiChoiceItems方法

 /**     *带选项列表对话框的点击事件     * @param view     */    public void bt2(View view) {        //定义一个字符串数组存放列表信息        String[]colors={"红","黄","蓝","绿","黑"};        new AlertDialog.Builder(this)                //不可点击外部区域取消对话框                .setCancelable(false)                //标题                .setTitle("选择一种颜色")                .setPositiveButton("ok", null)                //实现单选列表,第一个参数使用colors数据为选项,第二个参数为默认选中的位置(如不需要默认选中,则设为-1),第三个位置参数为该选项的点击事件                //如需多选则使用.setMultiChoiceItems()                .setSingleChoiceItems(colors, 0, new DialogInterface.OnClickListener() {                    @Override                    //第一个参数为调用这个对话框的本身,第二个参数为位置                    public void onClick(DialogInterface dialogInterface, int i) {                        Toast.makeText(MainActivity.this, colors[i], Toast.LENGTH_SHORT).show();                    }                })                .show();    }

效果图

 

自定义视图dialog

一个自己定义样式的dialog,这里我模拟了一个登录弹窗

需先在layout里创建一个xml文件,这里我命名为dialog_view

dialog_view.xml

<?xml version="1.0" encoding="utf-8"?>                

xml文件

activity_main.xml

  

MainActivity.Java

/**     * 自定义视图对话框     * @param view     */    public void bt3(View view) {        //使用inflate方法,从一个XML的资源文件当中获取一个视图        View v=View.inflate(this,R.layout.dialog_view,null);        //获取dialog_view中的组件        final EditText eduser=v.findViewById(R.id.user);        final EditText edpaw=v.findViewById(R.id.paw);        new AlertDialog.Builder(this)                //标题                .setTitle("用户登录")                //不可点击外部区域取消对话框                .setCancelable(false)                //设置视图                .setView(v)                .setPositiveButton("登录", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialogInterface, int i) {                        //按钮点击时,获取控件中的数据                        String username=eduser.getText().toString().trim();                        String pawd=edpaw.getText().toString().trim();                        //通过Toast输出                        Toast.makeText(MainActivity.this, "用户名:"+username+"密码:"+pawd, Toast.LENGTH_SHORT).show();                    }                })                .show();    }

效果图

 

带进度条的dialog

可用于加载等待

xml文件

activity_main.xml

        

MainActivity.Java

 /**     * 启动带进度条的对话框     * @param view     */    public void bt4(View view) {        //创建一个进度条对话框        ProgressDialog progressDialog=new ProgressDialog(this);        //标题        progressDialog.setTitle("进度条对话框");        //设置当前进度        progressDialog.setProgress(30);        //设置样式为水平状进度条        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);        //不可点击外部区域取消对话框        progressDialog.setCancelable(false);        progressDialog.show();        new Thread(new Runnable() {            @Override            public void run() {                //for循环使进度条不断累加推进                for (int i=1;i<20;i++){                    try {                        //通过线程休眠是=使两次进度条修改时间之间间隔200毫秒                        Thread.sleep(200);                    }catch (InterruptedException e){                        e.printStackTrace();                    }                    //获取当前的进度条加20轮,每轮前进5格                    progressDialog.setProgress(progressDialog.getProgress()+5);                }                //完成后隐藏进度条                progressDialog.dismiss();            }        }).start();    }

效果图 

 

日期选择dialog

用于生日选择,时间选择等

xml文件

activity_main.xml

        

MainActivity.Java

 /**     * 日期选择对话框     * @param view     */    public void bt5(View view) {        //Calendar日历类获取年月日的三个字段        Calendar calendar=Calendar.getInstance();        int year=calendar.get(Calendar.YEAR);        int month=calendar.get(Calendar.MONTH);        int day=calendar.get(Calendar.DAY_OF_MONTH);        //创建一个日期选择对话框,OnDateSetListener表示在日期选择当中会弹出一个onDateSet返回日期的年月日        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {            @Override            //onDateSet带回选中的年月日            public void onDateSet(DatePicker datePicker, int year, int month, int dayofminth) {                Toast.makeText(MainActivity.this, "选中了"+year+"年"+month+"月"+dayofminth+"日", Toast.LENGTH_SHORT).show();            }            //设置当前的年月日        },year,month,day).show();    }

效果图

结束

更多相关文章

  1. android bindingAdapter progressbar menu
  2. windows下android 开发环境建立
  3. [Android(安卓)界面] Android: 自定义DIALOG
  4. ProGuard用法
  5. Android中对话框(dialog)的使用
  6. android webview点击返回键回到上一个html
  7. Android(安卓)通过OKhttp3进行下载实现版本更新
  8. 三行代码去Android(安卓)USB ADB调试确认对话框
  9. ListView中item点击的时候颜色变化

随机推荐

  1. 六大布局之非常用布局
  2. Skype for Business预览版已登陆Android
  3. Android基于百度定位SDK v4.1(LBS)实现定位
  4. Android支付宝支付
  5. (续)Android热更新:Tinker热修复与Walle多渠
  6. Android有效的治疗方法Bitmap,减少内存
  7. Android(安卓)之Scroller 理解与应用
  8. Android(安卓)调用前置摄像头[原创]
  9. 手机音视频开发 视频聊天APP应用
  10. Android(安卓)JNI处理图片实现黑白滤镜的