代码地址如下:
http://www.demodashi.com/demo/12228.html

记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果

前言

在我们项目的进行中不可避免的会用到弹框的使用,我们也经常的使用dialog相关知识来创建一个弹出框,但今天我要讲解的是用DialogFragment的方式来快速创建一个简约风格的弹出框,它相较于dialog来创建弹出框的优势在:

dialog在关闭的时候,容易发生内存泄漏,而dialogFragment是和activity的生命周期绑定的,dialogFragment自身对内存做了些处理,它不仅具备dialog功能,还避免了内存的泄露,特别是在手机进行横竖屏切换的时候

下面我就来讲讲DialogFragment创建dialog相关的知识。

程序实现

一.dialogFragment创建dialog的方式

dialogFragment创建dialog的方式有两种:

  1. 通过重写 onCreateDialog(Bundle savedInstanceState) 方法创建默认dialogFragment
  2. 通过重写 onCreateView 方法来自定义dialogFragment

由于今天讲解的是通过快速的方式创建dialog,就讲解第一种方式

具体思路是写一个类去继承AppCompaDialogFragment,然后重写onCreateDialog方法来实现dialog的创建

然后我自己新建了一个DefaultDialogFragment对默认DialogFragment进行了封装,下面就来讲讲DefaultDialogFragment的具体使用。

一.DefaultDialogFragment初始化
private DefaultDialogFragment mDefaultDialogFragment;

mDefaultDialogFragment=new DefaultDialogFragment();
二.DefaultDialogFragment设置标题
setTitle(String title)
三.DefaultDialogFragment设置标题
setMessage(String message)
四.DefaultDialogFragment设置是否可按返回键消失

默认为true,即点击返回键会消失

setCancel(boolean canDismiss)
五.设置是否可点击屏幕dialog外部区域消失

默认为true,即点击屏幕dialog外部区域会消失

setCancelOnTouchOutside(boolean canDismiss)
六.设置dialog背景色
setBackGround(int rid)
七.监听确认点击事件
setPositiveListener(String positiveText, DialogInterface.OnClickListener onClickListener)
八.监听取消点击事件
setNegativeListener(String negativeText, DialogInterface.OnClickListener onClickListener)
九.显示dialogFragemnt
showDialog(FragmentManager fragmentManager)
十.dialogFragemnt显示类型

DefaultDialogFragment支持链式调用,如果你想只显示提示语而没有点击事件(即没有确认和取消按钮),你可以这样调用:

mDefaultDialogFragment=new DefaultDialogFragment();
mDefaultDialogFragment.setTitle("提示")//设置标题
.setMessage("我是提示框")//设置提示语
.setCancel(true)//设置是否可按返回键消失
.setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失
.setBackGround(R.color.color_f66f6f)//设置dialog背景色
.showDialog(getSupportFragmentManager());//显示dialog

只包含一个确认按钮,你可以这样调用:

 mDefaultDialogFragment=new DefaultDialogFragment();
mDefaultDialogFragment.setTitle("提示")//设置标题
.setMessage("我是带确认按钮提示框")//设置提示语
.setCancel(true)//设置是否可按返回键消失
.setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失
.setBackGround(R.color.color_f66f6f)//设置dialog背景色
.setPositiveListener("确定",new DialogInterface.OnClickListener(){//设置确定按钮事件
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShortToast(MainActivity.this,"确定");
}
})
.showDialog(getSupportFragmentManager());//显示dialog

只包含一个取消按钮,你可以这样调用:

 mDefaultDialogFragment=new DefaultDialogFragment();
mDefaultDialogFragment.setTitle("提示")//设置标题
.setMessage("我是带取消按钮提示框")//设置提示语
.setCancel(true)//设置是否可按返回键消失
.setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失
.setBackGround(R.color.color_f66f6f)//设置dialog背景色
.setNegativeListener("取消", new DialogInterface.OnClickListener() {//设置取消按钮事件
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShortToast(MainActivity.this,"取消");
}
})
.showDialog(getSupportFragmentManager());//显示dialog

dialog中既有确认按钮也有取消按钮,你可以这样调用:

  mDefaultDialogFragment=new DefaultDialogFragment();
mDefaultDialogFragment.setTitle("提示")//设置标题
.setMessage("我是两个按钮均有的提示框")//设置提示语
.setCancel(true)//设置是否可按返回键消失
.setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失
.setBackGround(R.color.color_f66f6f)//设置dialog背景色
.setPositiveListener("确定",new DialogInterface.OnClickListener(){//设置确定按钮事件
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShortToast(MainActivity.this,"确定");
}
})
.setNegativeListener("取消", new DialogInterface.OnClickListener() {//设置取消按钮事件
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShortToast(MainActivity.this,"取消");
}
})
.showDialog(getSupportFragmentManager());//显示dialog
dialogFragemnt运行效果图

dialogFragemnt项目结构图

DialogFragment创建默认dialog

代码地址如下:
http://www.demodashi.com/demo/12228.html

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

DialogFragment创建默认dialog的更多相关文章

  1. Android Dialogs(2)最好用DialogFragment创建Dialog

    Creating a Dialog Fragment You can accomplish a wide variety of dialog designs—including custom layo ...

  2. Android 官方推荐 : DialogFragment 创建对话框

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...

  3. [Android Pro] Android 官方推荐 : DialogFragment 创建对话框

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...

  4. 转帖:Android 官方推荐 : DialogFragment 创建对话框

    转: Android 官方推荐 : DialogFragment 创建对话框 复制内容,留作备份 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment ...

  5. Android创建自定义dialog方法详解-样式去掉阴影效果

    在自定义组件时,从已有组件源码中会很大收获.就拿progressDialog来说     间接父类是dialog,想了解dialog继承结构可以去百度,或者    从构造器来说ProgressDial ...

  6. oracle创建默认表空间---重要

    当oracle创建数据库后,sys创建用户时还要有默认表空间.不创建默认表空间在导如项目时会有些数据表导入不成功! 由于时间仓促以截屏为例  之后会在刚刚那个空文件生成一个文件 ----------- ...

  7. nginx创建默认虚拟主机

    创建默认虚拟主机配置文件作用:禁止任何人通过ip或未允许的域名访问web服务. 如:vim vhosts/default.conf server { listen 80 default; server ...

  8. [UE][虚幻]创建默认媒体打包资源路径

    **创建默认媒体打包资源路径** **个人笔记**   **翻阅官方资料,实践出来的!**   **转载,"借鉴",重写...其他行为必须标明出处!!!** UE 官方默认有一个专 ...

  9. Android控件大全(一)——DialogFragment创建对话框

    DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...

随机推荐

  1. CString::GetLength()获得字节数

    按照MSDN的说吗,在选用MBCS多字节字符串编码时,该方法会得到正确的字节数.此时没有问题. For multibyte character sets (MBCS), GetLength count ...

  2. 用户空间缺页异常pte_handle_fault()分析--(上)【转】

    转自:http://blog.csdn.net/vanbreaker/article/details/7881206 版权声明:本文为博主原创文章,未经博主允许不得转载. 前面简单的分析了内核处理用户 ...

  3. java实现MQ消息收发两种方式

    定义: 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.简单理解:蓝牙配对 jar包依赖: <!-- ...

  4. java keytool证书工具使用小结(转)

    Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(K ...

  5. SQLSERVER2008以上版本的数据恢复

    这哥们真不错... http://blog.csdn.net/dba_huangzj/article/details/8491327

  6. (分享别人的一篇好文章,来自jackson0714)30分钟全面解析-SQL事务+隔离级别+阻塞+死锁()

    30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQ ...

  7. 51nod 1001 数组中和等于K的数对【二分查找/排序】

    1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组 ...

  8. c# await 到底等待的是什么?

    static void Main(string[] args) { Print(); Console.WriteLine("5 :::" + Thread.CurrentThrea ...

  9. Java-静态代码块,构造代码块,构造函数

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次 构造代码块:类中直接用{}定义,每一次创建对象时执行. 执行顺序优先级:静态块, main(),函数,构造块,构造方法. 构造函数 pu ...

  10. Filter过滤器笔记1

    Filter:过滤器 Filter主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.使用Filter的完整流程是:Filter对用户请求进行预处 ...