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
*
*/
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 常用对话框Dialog封装的更多相关文章
- (转载)Android常用的Dialog对话框用法
Android常用的Dialog对话框用法 Android的版本有很多通常开发的时候对话框大多数使用自定义或是 Google提供的V4, V7 兼容包来开发保持各个版本的对话框样式统一,所以这里使用的 ...
- android常用对话框封装
在android开发中,经常会用到对话框跟用户进行交互,方便用户可操作性:接下来就对常用对话框进行简单封装,避免在项目中出现冗余代码,加重后期项目的维护量:代码如有问题欢迎大家拍砖指正一起进步. 先贴 ...
- Android自定义对话框(Dialog)位置,大小
代码: package angel.devil; import android.app.Activity;import android.app.Dialog;import android.os.Bun ...
- Android 自定义对话框(Dialog)位置,大小
代码: package angel.devil; import android.app.Activity; import android.app.Dialog; import android.os.B ...
- Android常用的Dialog对话框用法
Android的版本有很多通常开发的时候对话框大多数使用自定义或是 Google提供的V4, V7 兼容包来开发保持各个版本的对话框样式统一,所以这里使用的是V7 包里的AlertDialog. im ...
- android 开发 对话框Dialog详解
转载请注明出处:红亮的专栏:http://blog.csdn.net/liang5630/article/details/44098899 Android中的对话框形式大致可分为五种:分别是一般对话框 ...
- Android之对话框Dialog
首先是确认对话框 //确认对话框 private void showLog1() { AlertDialog.Builder dialog = new AlertDialog.Builder(this ...
- Android 开发 对话框Dialog dismiss和hide方法的区别
http://ningtukun.blog.163.com/blog/static/186541445201310151539697/ dismiss和hide方法都可以隐藏对话框,在需要的时候也可以 ...
- Android常用工具类封装---SharedPreferencesUtil
SharedPreferences常用于保存一些简单的数据,如记录用户操作的配置等,使用简单. public class SharedPreferencesUtil { // ...
随机推荐
- [ 转]国内有时抽风,无法更新adt的解决方案
http://www.xidige.com/other/354 最近无意中发现mirrors.neusoft.edu.cn有android的目录,进去还能看到xml文件,所以网络搜索了一下,发现还有另 ...
- Eucalyptus使用的技术
libvirt Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品. N ...
- JavaScript之原型深入详解
理解原型 原型是一个对象,其他对象可以通过它实现属性继承.任何一个对象都可以成为继承,所有对象在默认的情况下都有一个原型,因为原型本身也是对象,所以每个原型自身又有一个原型.任何一个对象都有一个pro ...
- C - A Simple Problem with Integers - poj 3468(区间更新)
题意:有一个比较长的区间可能是100000.长度, 每个点都有一个值(值还比较大),现在有一些操作,C abc, 把区间a-b内全部加上c, Qab,求区间ab的值. 分析:很明显我们不可能对区间的每 ...
- spring-mvc.xml配置文件出错
在整合ssm三大框架的时候,配置spring-mvc.xml的文件的 <mvc:default-servlet-handler/> <mvc:annotation-driven /& ...
- Ensures there will be no 'console is undefined' errors
很早之前项目中遇到过这种bug, 当时没有多留意,只是暂时把笔记留了下来,今天整理笔记的时候,看到了,故先整理在此,具体用法下次遇到再好好理解理解.如果有筒子遇到过,麻烦留言说一下,先谢谢啦. //E ...
- chrome播放语音时,在chrome 控制台中报 DOMException: The play() request was interrupted by a call to pause(). 的问题.
$(document).ready(function () { var audioElement = $( '<audio>' + ' <source src="" ...
- Java基础知识强化之IO流笔记02:try...catch的方式处理异常
1. 案例示例: package com.himi.trycatch; public class ExceptionDemo { public static void main(String[] ar ...
- yii CGridView colum 链接
默认显示的内容是没有链接的,现在想加链接,效果图如下 代码位置就在columns数组里,直接上代码说明 $this->widget('zii.widgets.grid.CGridView', a ...
- nginx 配置轮询服务
通常我们应用nginx做代理时,用到它的轮训服务 #设置轮询名称 upstream zyy{ server 127.0.0.1:8080 #本机的apache服务 } server { listen ...