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

在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。

先来看个DialogFragment的定义

 public class MyDialogFragment extends DialogFragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏
return inflater.inflate(R.layout.dialog_layout,null);
} @NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity()).setIcon(R.mipmap.ic_launcher).setTitle("标题").setMessage("hhhhhhhhhhhhhhhh").setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
}).create();
}
}

onCreateView:解析一个布局文件到Dialog中 onCreateDialog:添加一个AlertDialog到Dialog中

两个方法重写一个即可,正常人一般都不会两个都重写吧?貌似会报错。。。。。

Dialog与Activity交互

自定义一个接口,Activity实现该接口,将getActivity()强转成该接口即可。

   public Dialog onCreateDialog(Bundle savedInstanceState) {
View v=LayoutInflater.from(getActivity()).inflate(R.layout.dialog_layout,null);
final EditText username= (EditText) v.findViewById(R.id.username);
final EditText password= (EditText) v.findViewById(R.id.password);
return new AlertDialog.Builder(getActivity()).setView(v).setIcon(R.mipmap.ic_launcher).setTitle("标题").setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("com.alger","po+"+which);
((ILoginListener)getActivity()).Login(username.getText().toString(),password.getText().toString());
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("com.alger","ne+"+which);
}
}).create();
}

http://blog.csdn.net/huangyabin001/article/details/30053835

Dialog位置动画等参考 :http://blog.csdn.net/maxwell0401/article/details/52336893

Android控件大全(一)——DialogFragment创建对话框的更多相关文章

  1. Android控件大全(二)——Toolbar

    1.隐藏Actionbar 代码中设置:requestWindowFeature(Window.FEATURE_NO_TITLE)     //如果Activity是继承自AppCompatActiv ...

  2. Android控件大全(四)——CoordinatorLayout

    CoordinatorLayout 其实就是个高级的FrameLayout,用于协调子布局要使用该控件,需要再gradle中加入: compile 'com.android.support:desig ...

  3. Android控件大全(三)——RecyclerView

    是时候用RecyclerView来替换ListView和GridView了 好处就不多说了,百度一搜一大把,来介绍下用法 先定义个适配器: public class BottomSheetAdapte ...

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

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

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

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

  6. Android控件TextView的实现原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...

  7. Android控件常见属性

    1.宽/高android:layout_width android:layout_height// 取值match_parent //匹配父控件wrap_content //自适应,根据内容 如果指定 ...

  8. Delphi 控件大全

    delphi 控件大全(确实很全)   delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar ...

  9. android控件的属性

    android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...

随机推荐

  1. 将网站部署到windows2003 iis6之后,出现asp.net程序页面无法访问情况

    idc的技术说是没有装.net framework 2.0的缘故. 可是我已经装了4.0. 后来把一个伪静态的组件卸载了,就可以了.

  2. 单实例Singleton

    单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了.这个设计模式主要目的是想在 整个系统中只能出现一个类的实例.这样做当然是有必然的, ...

  3. c++学习-继承

    继承 #include <iostream> using namespace std; class father{ public: void getHeight(){cout<< ...

  4. centos更改默认语言

    centos7以下版本: vim /etc/sysconfig/i18n 7以上版本:

  5. A^B问题

    题目:输入包括两个正整数 A 和 B(1 <= A, B <= 10000),A 和 B 之前用空格隔开 ★数据输出 输出一行,若 A ^ B < 10000,则直接输出结果(不包含 ...

  6. Guava 9-I/O

    字节流和字符流 Guava使用术语”流” 来表示可关闭的,并且在底层资源中有位置状态的I/O数据流.术语”字节流”指的是InputStream或OutputStream,”字符流”指的是Reader ...

  7. ethereal抓包工具

    ethereal是目前网络上开源的一款功能强大的以太网抓包工具,该软件可以监听异常封包,检测软件封包问题,从网络上抓包,并且能对数据包进行分析,从而帮助用户解决各种网络故障,更加方便查看.监控TCP ...

  8. android之Widget01

    ExampleAppWidgetProvider.java package com.example.mars_2600_widget01; import android.appwidget.AppWi ...

  9. mongodb csv 文件导入数据库,删除特定字段

    1. 导入数据库 mongoimport -h host_ip -p port -d db_name -c collection_name --fields name1,name2,name3,nam ...

  10. centos5安装在大硬盘上面的问题

    硬盘空间大小: 3TB 原始硬盘是GPT格式的,系统安装现象如下: 此时按 ctrl + alt + F2 ,进入命令行界面,输入如下: 发现 用parted修改硬盘分区格式为msdos,报错!基本可 ...