Android中的Dialog 对话框的使用

1.1    Dialog 对话框

1.1.1  提示对话框AlertDialog的使用

AlertDialog.Builder builder = AlertDialog.Budiler(Context):创建Dialog构造器

builder.setIcon():设置图标

builder.setMessage():设置文本内容

builder.setPositiveButton():设置“确定”按钮

builder.setNegativeButton():设置“取消”按钮

builder.setNeutralButton():设置“中立”按钮

                   点击按钮后,默认会关闭对话框

builder.setCancelable(boolean cancelable):设置是否可被取消

AlertDialog dialog = builder.create():创建对话框对象

dialog.show():显示对话框

点击按钮后,默认会关闭对话框

这两行代码可用builder.show()来代替

提示对话框AlertDialog的使用:

 

AlertDialog的分类:

1.  普通AlertDialog

2.  带列表的AlertDialog

3.  带单选列表的AlertDialog

4.  带多选列表的AlertDialog

5.  自定义列表样式的AlertDialog

6.  完全自定义显示内容的AlertDialog

 

 

 

1.1.2  列表对话框

列表对话框本质上还是AlertDialog

1、普通列表对话框

         builder.setItems():设置列表项

2、单选列表对话框

         builder.setSingleChoiceItems():设置单选列表项

3、多选列表对话框

         builder.setMultiChoiceItems():设置多选列表项

4、带图标的列表对话框

         builder.setAdapter():设置适配器(自定义每一行的布局和内容)

 

1.1.3  进度对话框

ProgressDialog pDialog = newProgressDialog(Context) :创建进度对话框

设置进度条的样式

         无进度显示(默认)

         有进度显示:pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

pDialog.show():显示对话框

pDialog.setProgress(intprogress):设置进度

示例代码

case R.id.btn_dialog_progress:

                            ProgressDialog dialog = new ProgressDialog(this);

                            dialog.setMessage("提示等待中.......");

                            dialog.setTitle("提示题");

                            dialog.setIcon(R.drawable.ic_launcher);

                            // 设置对话框的显示样式

                            dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

                            dialog.show();

                            break;

 

1.1.4  日期选择对话框DatePickerDialog

日期设置对话框的实现与时间设置对话框的使用套路一致,唯一要注意的问题在于,关于月份上:3 代表4月

private void dataPickDialog() {

                   // 获取设备的当前时间

                   Calendar cal = Calendar.getInstance();

                   DatePickerDialog dpcl = new DatePickerDialog(MainActivity.this,

                                     newOnDateSetListener() {

 

                                               @Override

                                               public voidonDateSet(DatePicker view, int year,

                                                                 int monthOfYear, int dayOfMonth) {

                                                        // TODO Auto-generated method stub

                                                        Toast.makeText(MainActivity.this,

                                                                           year+ "/" + (monthOfYear+1) + "/" + dayOfMonth,

                                                                           Toast.LENGTH_SHORT).show();

                                               }

                                     }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),

                                     cal.get(Calendar.DAY_OF_MONTH));

                   dpcl.show();

         }】

 

1.1.5  时间选择对话框TimePickerDialog

时间设置对话框的实现:

/*

             * 1. Context 环境

             * 2. 当时间确定后运行该接口中的方法

             * 34.用于设置对话框初始显示时显示的小时和分钟数

             * 5. 是否是24小时制

             * */

            TimePickerDialog td = new TimePickerDialog(this, new OnTimeSetListener() {

                /*

                 * 当时间设置完成后运行的方法

                 * 参数:1.对话框中用于设置时间的控件

                 * 2. 设置后的小时

                 * 3.设置后的分钟

                 * */

                @Override

                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                    // TODO Auto-generated method stub

                    Toast.makeText(MainActivity.this, hourOfDay+" "+minute, Toast.LENGTH_LONG).show();

                }

            }, 11, 25, true);

            //显示对话框

            td.show();

 

1.1.6  自定义对话框

builder.setView()

         privatevoid btn_dialog_custom() {

                   Viewview = getLayoutInflater().inflate(R.layout.custom, null);

                   final AlertDialog dia=newAlertDialog.Builder(this)

                   .setView(view)

                   .setTitle("完全自定义的对话框")

                   .show();

                   /*

                    * 自定义的对话框中显示一个输入框和一个按钮

                    * 实现:当点击按钮的时候,关闭对话框,并且获取输入框中输入的内容

                    * */

                   Buttonbut =(Button) view.findViewById(R.id.button1);

                   finalEditText et = (EditText) view.findViewById(R.id.editText1);

                   /*

                    * 由于按钮的点击事件与对话框中的点击事件的名称都叫做OnClickListener

                    * 分属于不同的包中,而import倒包的部分不允许导入两个结尾名称相同的类

                    * 所以只能一个通过import导包,另一个通过上一层的路径类进行显示

                    * */

                   but.setOnClickListener(newView.OnClickListener() {

                           

                            @Override

                            publicvoid onClick(View v) {

                                     //TODO Auto-generated method stub

                                     Toast.makeText(MainActivity.this,et.getText().toString(), Toast.LENGTH_SHORT).show();

                                     dia.dismiss();

                            }

                   });

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章