Android 常用对话框Dialog封装
16lz
2021-01-23
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 * */public class DialogTool{ public static final int 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接口 必填 * @return */ public static 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接口 必填 * @return */ public static 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接口 必填 * @return */ public static 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;接口 必填 * @return */ public static 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接口 必填 * @return */ public static 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 对话框中自定义视图 必填 * @return */ public static 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; } }
使用示例:
package com.example.encapsulation;import java.util.ArrayList;import dialog.DialogTool;import android.app.Activity;import android.app.Dialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.content.DialogInterface.OnMultiChoiceClickListener;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import application.CcsApplication;public class MainActivity extends Activity{ Dialog dialog = null; String[] contents = {"第一项", "第二项", "第三项", "第四项", "第五项"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setDialog(); CcsApplication ccsApplication = (CcsApplication)getApplicationContext(); Log.v("serverIp", ccsApplication.getServerIp()); } public void setDialog() { dialog = DialogTool.createMessageDialog(MainActivity.this, "标题", "内容", "按钮", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, DialogTool.NO_ICON); dialog.show(); /* dialog = DialogTool.createConfirmDialog(MainActivity.this, "标题", "内容", "确定按钮", "取消按钮", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, DialogTool.NO_ICON); dialog.show();*/ /* dialog = DialogTool.createSingleChoiceDialog(MainActivity.this, "标题", contents, "确定按钮", "取消按钮", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, DialogTool.NO_ICON); dialog.show();*/ /* dialog = DialogTool.createMultiChoiceDialog(MainActivity.this, "标题", contents, "确定按钮", "取消按钮", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { // TODO Auto-generated method stub } }, DialogTool.NO_ICON); dialog.show();*/ /* dialog = DialogTool.createListDialog(MainActivity.this, "标题", contents, "取消按钮", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, DialogTool.NO_ICON); dialog.show();*/ /* EditText editText = new EditText(MainActivity.this); ImageView imageView = new ImageView(MainActivity.this); imageView.setImageResource(R.drawable.ic_launcher);// View view = new View(MainActivity.this);// ArrayList<View> childViews = new ArrayList<View>();// childViews.add(imageView);// childViews.add(editText);// view.addChildrenForAccessibility(childViews); dialog = DialogTool.createRandomDialog(MainActivity.this, "标题", "确定按钮", "取消按钮", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }, imageView, DialogTool.NO_ICON); dialog.show();*/ }}
THE END
更多相关文章
- android ListView中添加ImageButton按钮并绑定事件
- Android AlertDialog ————单选对话框
- Android 实现 按钮从两边移到中间动画效果
- android 多项对话框
- Android使用DialogFragment,自定义对话框
- 关于android在Service中弹出Dialog对话框
- Android ListView(Selector 背景图片 全选 Checkbox等按钮)
- android 自定义对话框 背景透明