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


更多相关文章

  1. android ListView中添加ImageButton按钮并绑定事件
  2. Android AlertDialog ————单选对话框
  3. Android 实现 按钮从两边移到中间动画效果
  4. android 多项对话框
  5. Android使用DialogFragment,自定义对话框
  6. 关于android在Service中弹出Dialog对话框
  7. Android ListView(Selector 背景图片 全选 Checkbox等按钮)
  8. android 自定义对话框 背景透明

随机推荐

  1. Android(安卓)AppWidget组件
  2. android: check network status 检查网络
  3. Android访问服务器地址是10.0.2.2的原因
  4. Android中缓存目录问题及缓存的过程
  5. Android中多线程下载
  6. android chess---R.java
  7. Android刷新转圈动画实现(一)
  8. andriod 利用ExpandableList做三级树
  9. android 蓝牙操作
  10. Android颜色大全