DialogFragment创建默认dialog
记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果
前言
在我们项目的进行中不可避免的会用到弹框的使用,我们也经常的使用dialog相关知识来创建一个弹出框,但今天我要讲解的是用DialogFragment的方式来快速创建一个简约风格的弹出框,它相较于dialog来创建弹出框的优势在:
dialog在关闭的时候,容易发生内存泄漏,而dialogFragment是和activity的生命周期绑定的,dialogFragment自身对内存做了些处理,它不仅具备dialog功能,还避免了内存的泄露,特别是在手机进行横竖屏切换的时候
下面我就来讲讲DialogFragment创建dialog相关的知识。
程序实现
一.dialogFragment创建dialog的方式
dialogFragment创建dialog的方式有两种:
- 通过重写 onCreateDialog(Bundle savedInstanceState) 方法创建默认dialogFragment
- 通过重写 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
注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权
DialogFragment创建默认dialog的更多相关文章
- Android Dialogs(2)最好用DialogFragment创建Dialog
Creating a Dialog Fragment You can accomplish a wide variety of dialog designs—including custom layo ...
- Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...
- [Android Pro] Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...
- 转帖:Android 官方推荐 : DialogFragment 创建对话框
转: Android 官方推荐 : DialogFragment 创建对话框 复制内容,留作备份 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment ...
- Android创建自定义dialog方法详解-样式去掉阴影效果
在自定义组件时,从已有组件源码中会很大收获.就拿progressDialog来说 间接父类是dialog,想了解dialog继承结构可以去百度,或者 从构造器来说ProgressDial ...
- oracle创建默认表空间---重要
当oracle创建数据库后,sys创建用户时还要有默认表空间.不创建默认表空间在导如项目时会有些数据表导入不成功! 由于时间仓促以截屏为例 之后会在刚刚那个空文件生成一个文件 ----------- ...
- nginx创建默认虚拟主机
创建默认虚拟主机配置文件作用:禁止任何人通过ip或未允许的域名访问web服务. 如:vim vhosts/default.conf server { listen 80 default; server ...
- [UE][虚幻]创建默认媒体打包资源路径
**创建默认媒体打包资源路径** **个人笔记** **翻阅官方资料,实践出来的!** **转载,"借鉴",重写...其他行为必须标明出处!!!** UE 官方默认有一个专 ...
- Android控件大全(一)——DialogFragment创建对话框
DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...
随机推荐
- UVA 10079 Pizze Cutting
题意:N条直线最多把平面分成几个部分 ans=1+(N+1)*N/2; 直线数量 1 2 3 4 …………n把平面分成的块数 2 4 7 11 1+1 1+1+2 1+1+2+3 1+1+2+3+4 ...
- cat /proc/maps 进程内存映射【转】
转自:http://blog.csdn.net/fisher_jiang/article/details/5063852 proc/<PID>/maps查看进程的虚拟地址空间是如何使用的. ...
- java1.7集合源码阅读:ArrayBlockingQueue
ArrayBlockingQueue是一个先进先出线程安全的队列,队列头部是进入队列时间最长的元素,队尾是进入队列时间最短的元素,同时队列的最大容量是固定的. 先看类定义: public class ...
- 出现函数重载错误call of overloaded ‘printfSth(double)’ is ambiguous
class C: { public: void printfSth(int i) { cout<<"C::printfSth(int i):"<<i< ...
- LCA【p4281】[AHOI2008]紧急集合 / 聚会
Description 欢乐岛上有个非常好玩的游戏,叫做"紧急集合".在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等 ...
- android如何取消闹铃
取消闹钟: Intent intent = new Intent(context, TestReceiver.class); PendingIntent pi = PendingIntent.getB ...
- POJ 1044: Date bugs
题目描述 There are rumors that there are a lot of computers having a problem with the year 2000. As they ...
- [POI2010]Beads
题目大意: 给定一个长度为$n(n\leq200000)$的串$S_{1\sim n}$,选择一个$l$,从$S_1$开始,将$S$分为连续的若干段,使得每一段长度为$l$.令$k$为分出来不同的子串 ...
- springboot 2.0+ 自定义拦截器
之前项目的springboot自定义拦截器使用的是继承WebMvcConfigurerAdapter重写常用方法的方式来实现的. 以下WebMvcConfigurerAdapter 比较常用的重写接口 ...
- Linux下将MySQL服务添加到服务器的系统服务中
Linux下将MySQL服务添加到服务器的系统服务中 Linux环境下将MySQL服务添加到服务器的系统服务中 1.了解MySQL程序路径 MySQL数据目录: /home/mysql/dataMyS ...