AlertDialog ——简单对话框
2016-09-07 10:22
369 查看
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
2、创建AlertDialog对话框的步骤:
创建AlertDialog.Builder对象,该对象能创建AlertDialog;
调用Builder对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题
setIcon ():设置图标
setMessage ():设置要显示的信息
setNegativeButton ():设置取消按钮
setPositiveButton ():设置确定按钮
setNeutralButton ():设置中立按钮
调用Builder对象的create()方法创建AlertDialog对话框;
调用AlertDialog的show()方法来显示对话框。
3、核心代码:
(三)、AlertDialog——列表对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
2、创建列表AlertDialog对话框的步骤:
创建AlertDialog.Builder对象,该对象能创建AlertDialog;
调用Builder对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题
setIcon ():设置图标
setMessage ():设置要显示的信息
setNegativeButton ():设置取消按钮
setPositiveButton ():设置确定按钮
setNeutralButton ():设置中立按钮
setItems ():为对话框添加列表项
setSingleChoiceItems ():为对话框添加单选列表项
setMultiChoiceItems ():为对话框添加多选列表项
setAdapter ():为对话框添加带图标的列表项
调用Builder对象的create()方法创建AlertDialog对话框;
调用AlertDialog的show()方法来显示对话框。
3、核心代码:
【备
e999
注:使用setItems ()、setSingleChoiceItems ()、setMultiChoiceItems ()
、setAdapter()能得到不同的结果。】
(四)、AlertDialog——自定义对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
2、创建自定义AlertDialog对话框的步骤:
创建AlertDialog.Builder对象,该对象能创建AlertDialog;
调用Builder对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题
setIcon ():设置图标
setMessage ():设置要显示的信息
setNegativeButton ():设置取消按钮
setPositiveButton ():设置确定按钮
setNeutralButton ():设置中立按钮
自定义布局文件;
使用LayoutInflater 的 inflater()方法填充自定义的布局文件,返回view对象。用该对象的findViewById()方法加载自定义布局上所有控件;
调用Builder对象的setView()方法加载view对象;
调用Builder对象的create()方法创建AlertDialog对话框;
调用AlertDialog的show()方法来显示对话框。
3、核心代码:本示例代码中写了一个显示登录窗口的登录框。
【备注:】采用LayoutInflater去填充布局,返回view对象。
(五)、ProgressDialog——进度对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
↳ android.app.ProgressDialog
2、创建 ProgressDialog 对话框的步骤:
实例化ProgressDialog,创建出ProgressDialog对象;
调用该对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题setIcon ():设置图标setMessage ():设置要显示的信息
调用 ProgressDialog 对象的show()方法显示出 ProgressDialog 对话框。
3、核心代码:
(六)、DatePickerDialog——日期选择对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
↳ android.app.DatePickerDialog
2、创建 DatePickerDialog 对话框的步骤:
实例化 DatePickerDialog ,创建出 DatePickerDialog 对象;
调用 DatePickerDialog 对象的show()方法显示出 DatePickerDialog 对话框;
绑定监听器:OnDateSetListener().
3、核心代码:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
2、创建AlertDialog对话框的步骤:
创建AlertDialog.Builder对象,该对象能创建AlertDialog;
调用Builder对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题
setIcon ():设置图标
setMessage ():设置要显示的信息
setNegativeButton ():设置取消按钮
setPositiveButton ():设置确定按钮
setNeutralButton ():设置中立按钮
调用Builder对象的create()方法创建AlertDialog对话框;
调用AlertDialog的show()方法来显示对话框。
3、核心代码:
Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("提示"); builder.setMessage("确认退出吗?"); builder.setPositiveButton("确认", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { text_main_info.setText("您点击了:" + which); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { text_main_info.setText("您点击了:" + which); } }); builder.setNeutralButton("中立", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { text_main_info.setText("您点击了:" + which); } }); builder.create().show();
(三)、AlertDialog——列表对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
2、创建列表AlertDialog对话框的步骤:
创建AlertDialog.Builder对象,该对象能创建AlertDialog;
调用Builder对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题
setIcon ():设置图标
setMessage ():设置要显示的信息
setNegativeButton ():设置取消按钮
setPositiveButton ():设置确定按钮
setNeutralButton ():设置中立按钮
setItems ():为对话框添加列表项
setSingleChoiceItems ():为对话框添加单选列表项
setMultiChoiceItems ():为对话框添加多选列表项
setAdapter ():为对话框添加带图标的列表项
调用Builder对象的create()方法创建AlertDialog对话框;
调用AlertDialog的show()方法来显示对话框。
3、核心代码:
【备
e999
注:使用setItems ()、setSingleChoiceItems ()、setMultiChoiceItems ()
、setAdapter()能得到不同的结果。】
//A. 普通列表 button_main_simpleListDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("请选择颜色:"); final String[] arrColor = new String[] { "红色", "绿色","蓝色" }; // 往对话框中放置普通列表 builder.setItems(arrColor, new OnClickListener() { // 以下代码是模拟:勾选选项后,文字颜色和文本框背景颜色相应发生改变 @Override public void onClick(DialogInterface dialog , int which) { text_main_info.setText(arrColor[which]); switch (which) { case 0: text_main_info.setBackgroundColor(Color.RED); break; case 1: text_main_info.setBackgroundColor(Color.GREEN); break; case 2: text_main_info.setBackgroundColor(Color.BLUE); break; default: break; } } }); builder.show(); } }); //B. 单选列表 button_main_singleListDialog .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("请选择颜色:"); final String[] arrColor = new String[] { "红色", "绿色","蓝色" }; // 往对话框中放置单选列表 builder.setSingleChoiceItems(arrColor, 0, new OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { position = which;//通过这个监听器获取到点击的是第几个 } }); builder.setPositiveButton("确认", new OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { text_main_info.setText(arrColor[position]); switch (position) { case 0: text_main_info.setBackgroundColor(Color.RED); break; case 1: text_main_info.setBackgroundColor(Color.GREEN); break; case 2: text_main_info.setBackgroundColor(Color.BLUE); break; default: break; } } }); builder.show(); } }); //C. 多选列表 button_main_multiListDialog .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("请选择颜色:"); final String[] hobbyArr = new String[] { "看书", "学习","饮食", "爬山", "绘画" }; // 将多选项中每次勾选的结果放到一个pos数组中。 pos = new boolean[hobbyArr.length]; // 往对话框中放置多选列表 builder.setMultiChoiceItems(hobbyArr, null, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog,int which, boolean isChecked) { pos[which] = isChecked;//将每一项被勾选的状态放到一个boolean型的数组中 } }); // 多选列表项必须要使用确认按钮才能最终获得所有勾选的数据。 builder.setPositiveButton("确认", new OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { // 将所有的勾选项放到一个字符串中 StringBuilder sb = new StringBuilder(); for (int i = 0; i < pos.length; i++) { if (pos[i]) { sb.append(hobbyArr[i]); sb.append("、"); } } text_main_info.setText("您勾选了:" + sb.toString()); } }); builder.show(); } }); //D. 带图标的列表dialog button_main_adapterListDialog .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("手机设置:"); // 定义数据源。以下是模拟数据。真实工作中,有可能是从网络上获取数据,也有可能是从xml配置文件中获取数据。 // 考虑到后期维护,很少在java文件中以定义数组的形式作为适配器的数据来源。 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < settingArr.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("settingType", settingArr[i]); map.put("imageId", imageId[i]); list.add(map); } // 使用SimpleAdapter将数据源和自定义布局文件结合到一起。 SimpleAdapter adapter = new SimpleAdapter( MainActivity.this, list, R.layout.item_dialog, new String[] { "settingType", "imageId" }, new int[] { R.id.text_item_dialog, R.id.imageView_item_dialog }); // 调用builder的setAdapter()方法将适配器加载到对话框中。 builder.setAdapter(adapter, new OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { text_main_info.setText("您选择设置:" + settingArr[which]); } }); // 显示对话框 builder.show(); } });
(四)、AlertDialog——自定义对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
2、创建自定义AlertDialog对话框的步骤:
创建AlertDialog.Builder对象,该对象能创建AlertDialog;
调用Builder对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题
setIcon ():设置图标
setMessage ():设置要显示的信息
setNegativeButton ():设置取消按钮
setPositiveButton ():设置确定按钮
setNeutralButton ():设置中立按钮
自定义布局文件;
使用LayoutInflater 的 inflater()方法填充自定义的布局文件,返回view对象。用该对象的findViewById()方法加载自定义布局上所有控件;
调用Builder对象的setView()方法加载view对象;
调用Builder对象的create()方法创建AlertDialog对话框;
调用AlertDialog的show()方法来显示对话框。
3、核心代码:本示例代码中写了一个显示登录窗口的登录框。
【备注:】采用LayoutInflater去填充布局,返回view对象。
View view = null; Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("管理员登录:"); LayoutInflater mInflater = LayoutInflater.from(MainActivity.this); view = mInflater.inflate(R.layout.loginform_main, null); final EditText edit_loginform_username = (EditText) view .findViewById(R.id.edit_loginform_username); final EditText edit_loginform_password = (EditText) view .findViewById(R.id.edit_loginform_password); builder.setView(view); builder.setPositiveButton("登录", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String username = edit_loginform_username.getText() .toString().trim(); String password = edit_loginform_password.getText() .toString().trim(); if (username.length() < 1 || password.length() < 1) { text_main_info.setText("用户名或密码不可以为空!"); } else { StringBuilder sb = new StringBuilder(); sb.append("您的登录信息:"); sb.append("用户名:"); sb.append(username); sb.append("密码:"); sb.append(password); text_main_info.setText(sb.toString()); } } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //此处进行异步任务访问网络等处理。 } }); builder.create().show();
(五)、ProgressDialog——进度对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
↳ android.app.ProgressDialog
2、创建 ProgressDialog 对话框的步骤:
实例化ProgressDialog,创建出ProgressDialog对象;
调用该对象的方法设置图标、标题、内容、按钮等;
setTitle():为对话框设置标题setIcon ():设置图标setMessage ():设置要显示的信息
调用 ProgressDialog 对象的show()方法显示出 ProgressDialog 对话框。
3、核心代码:
ProgressDialog pDialog = new ProgressDialog(MainActivity.this); pDialog.setTitle("提示:"); pDialog.setMessage("数据加载中。。。"); pDialog.show();
(六)、DatePickerDialog——日期选择对话框:
1、类结构:
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
↳ android.app.DatePickerDialog
2、创建 DatePickerDialog 对话框的步骤:
实例化 DatePickerDialog ,创建出 DatePickerDialog 对象;
调用 DatePickerDialog 对象的show()方法显示出 DatePickerDialog 对话框;
绑定监听器:OnDateSetListener().
3、核心代码:
// 获取系统当前日期 Calendar calendar = Calendar.getInstance(); DatePickerDialog datePickerDialog = new DatePickerDialog( MainActivity.this, new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { text_main_info.setText("您选择了:" + year + ":" + (monthOfYear + 1) + ":" + dayOfMonth); } }, calendar.get(Calendar.YEAR), calendar .get(Calendar.MONTH), calendar .get(Calendar.DAY_OF_MONTH)); datePickerDialog.setCancelable(true); datePickerDialog.show();
相关文章推荐
- android 简单列表对话框(AlertDialog.Builder().setItems())
- android 简单列表对话框(AlertDialog.Builder().setItems())
- android 简单列表对话框(AlertDialog.Builder().setItems())
- Eclipse平台中“进度条对话框”(ProgressMonitorDialog)的简单实现
- Android对话框 (AlertDialog & ProgressDialog)
- Android 对话框 (AlertDialog & ProgressDialog)
- android-如何关闭AlertDialog.Builder对话框
- Android中的对话框之二:AlertDialog扩展
- 简单而强大的可调整大小对话框(Simple and more powerful resizable dialog)
- AlertDialog对话框
- Android对话框之AlertDialog
- AlertDialog 对话框属性学习笔记
- Android AlertDialog 方法setView(view,0,0,0,0)开发自定义对话框
- Android 对话框 之AlertDialog和Dialog
- Android UI学习 - 对话框 (AlertDialog & ProgressDialog)
- AlertDialog对话框按钮位置问题
- AlertDialog指定按钮消失对话框
- Android笔记:Android UI学习 - 对话框 (AlertDialog & ProgressDialog)
- AlertDialog之对话框的数据更新
- Android UI学习 - 对话框 (AlertDialog & ProgressDialog)