Android 常用对话框Dialog封装
Android 6种 常用对话框Dialog封装
包括:
消息对话框、警示(含确认、取消)对话框、单选对话框、
复选对话框、列表对话框、自定义视图(含确认、取消)对话框
分别如下图所示:
封装后代码:
package dialog; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.view.View; /** * 对话框封装类 * * @author Z * DialogTool { NO_ICON = -1; * 创建消息对话框 * * @param context 上下文 必填 * @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 * @param title 标题 必填 * @param message 显示内容 必填 * @param btnName 按钮名称 必填 * @param listener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * Dialog createMessageDialog(Context context, String title, String message, String btnName, OnClickListener listener, int iconId) { Dialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); if (iconId != NO_ICON) { //设置对话框图标 builder.setIcon(iconId); } //设置对话框标题 builder.setTitle(title); //设置对话框消息 builder.setMessage(message); //设置按钮 builder.setPositiveButton(btnName, listener); //创建一个消息对话框 dialog = builder.create(); return dialog; } /** * 创建警示(确认、取消)对话框 * * @param context 上下文 必填 * @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 * @param title 标题 必填 * @param message 显示内容 必填 * @param positiveBtnName 确定按钮名称 必填 * @param negativeBtnName 取消按钮名称 必填 * @param positiveBtnListener 监听器,,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * Dialog createConfirmDialog(Context context, String title, String message, String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener, OnClickListener negativeBtnListener, int iconId) { Dialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); if (iconId != NO_ICON) { //设置对话框图标 builder.setIcon(iconId); } //设置对话框标题 builder.setTitle(title); //设置对话框消息 builder.setMessage(message); //设置确定按钮 builder.setPositiveButton(positiveBtnName, positiveBtnListener); //设置取消按钮 builder.setNegativeButton(negativeBtnName, negativeBtnListener); //创建一个消息对话框 dialog = builder.create(); return dialog; } /** * 创建单选对话框 * * @param context 上下文 必填 * @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 * @param title 标题 必填 * @param itemsString 选择项 必填 * @param positiveBtnName 确定按钮名称 必填 * @param negativeBtnName 取消按钮名称 必填 * @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param itemClickListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * Dialog createSingleChoiceDialog(Context context, String title, String[] itemsString, String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener, OnClickListener negativeBtnListener, OnClickListener itemClickListener, int iconId) { Dialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); if (iconId != NO_ICON) { //设置对话框图标 builder.setIcon(iconId); } //设置对话框标题 builder.setTitle(title); //设置单选选项, 参数0: 默认第一个单选按钮被选中 builder.setSingleChoiceItems(itemsString, 0, itemClickListener); //设置确定按钮 builder.setPositiveButton(positiveBtnName, positiveBtnListener); //设置确定按钮 builder.setNegativeButton(negativeBtnName, negativeBtnListener); //创建一个消息对话框 dialog = builder.create(); return dialog; } /** * 创建复选对话框 * * @param context 上下文 必填 * @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 * @param title 标题 必填 * @param itemsString 选择项 必填 * @param positiveBtnName 确定按钮名称 必填 * @param negativeBtnName 取消按钮名称 必填 * @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param itemClickListener 监听器,需实现android.content.DialogInterface.OnMultiChoiceClickListener;接口 必填 * Dialog createMultiChoiceDialog(Context context, String title, String[] itemsString, String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener, OnClickListener negativeBtnListener, OnMultiChoiceClickListener itemClickListener, int iconId) { Dialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); if (iconId != NO_ICON) { //设置对话框图标 builder.setIcon(iconId); } //设置对话框标题 builder.setTitle(title); //设置选项 builder.setMultiChoiceItems(itemsString, null, itemClickListener); //设置确定按钮 builder.setPositiveButton(positiveBtnName, positiveBtnListener); //设置确定按钮 builder.setNegativeButton(negativeBtnName, negativeBtnListener); //创建一个消息对话框 dialog = builder.create(); return dialog; } /** * 创建列表对话框 * * @param context 上下文 必填 * @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 * @param title 标题 必填 * @param itemsString 列表项 必填 * @param negativeBtnName 取消按钮名称 必填 * @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * Dialog createListDialog(Context context, String title, String[] itemsString, String negativeBtnName, OnClickListener negativeBtnListener, OnClickListener itemClickListener, int iconId) { Dialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); if (iconId != NO_ICON) { //设置对话框图标 builder.setIcon(iconId); } //设置对话框标题 builder.setTitle(title); //设置列表选项 builder.setItems(itemsString, itemClickListener); //设置确定按钮 builder.setNegativeButton(negativeBtnName, negativeBtnListener); //创建一个消息对话框 dialog = builder.create(); return dialog; } /** * 创建自定义(含确认、取消)对话框 * * @param context 上下文 必填 * @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 * @param title 标题 必填 * @param positiveBtnName 确定按钮名称 必填 * @param negativeBtnName 取消按钮名称 必填 * @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 * @param view 对话框中自定义视图 必填 * Dialog createRandomDialog(Context context, String title, String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener, OnClickListener negativeBtnListener,View view, int iconId) { Dialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); if (iconId != NO_ICON) { //设置对话框图标 builder.setIcon(iconId); } //设置对话框标题 builder.setTitle(title); builder.setView(view); //设置确定按钮 builder.setPositiveButton(positiveBtnName, positiveBtnListener); //设置确定按钮 builder.setNegativeButton(negativeBtnName, negativeBtnListener); //创建一个消息对话框 dialog = builder.create(); return dialog; } }
使用示例: