Android基础 ---- 对话框

一、普通对话框

  • 创建步骤:
    • 使用 AlertDialog.Builder 类创建一个对话框对象
    • 调用 setTitle() 方法设置标题
    • 调用 setMessage() 方法设置显示的内容
    • 调用 setPositiveButton() 方法设置确定按钮
    • 调用 setNegativeButton() 方法设置取消按钮
    • 调用 show() 方法将对话框显示出来
  • 代码实现:
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 创建一个对话框对象
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            // 设置对话框标题
            builder.setTitle("警告");
            // 设置对话框内容
            builder.setMessage("您现在没有联网");
            // 设置对话框确认按钮事件
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.i("MainActivity","aaa");
                }
            });
            // 设置对话框取消按钮事件
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.i("MainActivity","bbb");
                }
            });
            // 将对话框显示出来
            builder.show();
        }
    }
    



二、单选对话框

  • 创建步骤:
    • 使用 AlertDialog.Builder 类创建一个对话框对象
    • 调用 setTitle() 方法设置标题
    • 调用 setSingleChoiceItems() 方法,为对话框添加单选事件
    • 调用 show() 方法将对话框显示出来
  • 代码实现:
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("你喜欢的编程语言");
            final String[] items = new String[]{"Java","C#","C","C++"};
            /*
             *      参数一:字符串类型数组,代表选择项目数组
             *      参数二:整数类型,代表默认选中哪一个项目,如果为-1则不选中任何项目
             *      参数三:引用数据类型,为选择的项目添加一个点击事件
             * */
            builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 取出选择的内容 ---> 遵循数据从哪里来的就从哪里取原则
                    String item = items[which];
                    // 对得到的内容进行操作
                    Toast.makeText(getApplicationContext(),item,Toast.LENGTH_LONG).show();
                    // 关闭对话框
                    dialog.dismiss();
                }
            });
            builder.show();
        }
     }
    



三、多选对话框

  • 创建步骤:
    • 使用 AlertDialog.Builder 类创建一个对话框对象
    • 调用 setTitle() 方法设置标题
    • 调用 setMultiChoiceItems() 方法为对话框添加多选事件
    • 调用 show() 方法将对话框显示出来
  • 代码实现:
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("选择你喜欢的水果");
            final String[] fruit = {"西瓜", "草莓", "香蕉", "火龙果"};
            final boolean[] fruitIsChecked = {true, false, false, true};
            /*
             *      参数一:字符串类型数组,代表选择项目数组
    	     *      参数二:Boolean类型数组,为上面的选择项目数组设置是否被默认选中,true代表默认被选中,false代表默认不被选中
    	     *      参数三:引用数据类型,为选择的项目添加一个点击事件。一般不用这个进行点击
             * */
            builder.setMultiChoiceItems(fruit, fruitIsChecked, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                }
            });
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    StringBuffer sb = new StringBuffer();
                    // 取出选择的数据
                    for (int i = 0; i < fruit.length; i++) {
                        // 判断项目是否被选中
                        if (fruitIsChecked[i]) {
                            String item = fruit[i];
                            sb.append(item + "  ");
                        }
                    }
                    // 将获取到的数据显示出来
                    Toast.makeText(getApplicationContext(),sb.toString(),Toast.LENGTH_LONG).show();
                    // 关闭对话框
                    dialog.dismiss();
                }
            });
            builder.show();
        }
    }
    



四、进度条对话框

  • 创建步骤:
    • 使用 ProgressDialog 类创建一个进度条对话框对象
    • 调用 setTitle() 方法设置标题
    • 开启一个线程,让进度条动起来
      • 注意:所有关于进度的控件,都可以在子线程中去更新
    • 调用 show() 方法将对话框显示出来
  • 代码实现:
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            final ProgressDialog progressDialog = new ProgressDialog(this);
            // 设置进度对话框样式为水平样式
            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            // 设置进度对话框标题
            progressDialog.setTitle("正在加载中");
            new Thread() {
                @Override
                public void run() {
                    progressDialog.setMax(100);
                    for (int i = 0; i < 100; i++) {
                        progressDialog.setProgress(i);
                        /*
                         *      SystemClock.sleep()与Thread.sleep()之间的不同点
                         *          SystemClock.sleep()不用捕获异常
                         *          Thread.sleep()需要捕获异常
                         * */
                        SystemClock.sleep(50);
                    }
                    progressDialog.dismiss();
                }
            }.start();
            // 将进度对话框展示出来
            progressDialog.show();
        }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值