DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。...在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。...AlertDialog来创建一个登录的对话框。...而通过DialogFragment实现的对话框则可以完全不必考虑旋转的问题。...可以看到,传统的Dialog旋转屏幕时就消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment的介绍结束~~~~ 源码点击下载
DialogFragmentDemos.gif 一、DialogFragment 是什么 DialogFragment 在 Android 3.0 时被引入,是一种特殊的 Fragment,用于在 Activity...AlertDialog 或者 Dialog 创建出 我们想要的 Dialog,因为这篇文章主要是讲 DialogFragment 的封装,至于 DialogFragment 具体的使用,可以参考下洋神的这篇文章...进行封装,依赖外部传入的 AlertDialog 来构建,同时也处理了 DialogFragment 中 AlertDialog 不能设置外部取消的问题 public class CommonDialogFragment...AlertDialog 的交互,Helper 会帮助我们用 DialogFragment 来进行显示,这样既能统一整个应用的 Dialog 风格,又能让我们实现各种各样的对话框变得相当的简单 在实现...应该还没忘了我们上面创建了一个 IDialogResultListener 用于 DialogFragment 与逻辑层之间进行数据监听吧,为了能传入各种各样类型的数据,这里我使用了 泛型 来进行处理
: 方法 ①,一般用于创建替代传统的 Dialog 对话框的场景,UI 简单,功能单一。...方法 ②,一般用于创建复杂内容弹窗或全屏展示效果的场景,UI 复杂,功能复杂,一般有网络请求等异步操作。...AlertDialog.Builder AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); //...设置主题的构造方法 // AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.CustomDialog...builder = new AlertDialog.Builder(getActivity()); // 设置主题的构造方法 // AlertDialog.Builder builder
01 概述 DialogFragment是在Android 3.0的时候被引入的, 目的是dialog也变成了碎片。DialogFragment是Fragment的子类,用于创建于用户交互的对话框。...在DialogFragment未哇哇坠地之前,我们一般用AlertDialog和Dialog来创建对话框。现在,谷歌官方不建议直接使用Dialog创建对话框。...onCreateView即使用定义的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog创建出Dialog。...showVersionDialogFragment中就只有两个方法,一个newInstance(),用于获取showVersionDialogFragment的实例。...2)创建Alert Dialog a、继承DialogFragment,重写onCreateDialog方法 ? 该方法返回的是一个AlertDialog实例化对象。 b、显示对话框 ?
他可以扩展出Android中的多种对话框,比如alertdialog,listdialog,radiodialog等。android已经为开发人员提供了简单的对话框,本篇要讲的是对话框的扩展部分。...在类中主要是为textview设置需要显示的字段,以及设置dialog显示的样式和主题等。这里是对DialogFragment扩展的主要部分,我们可以再这里定义自己的方法,定义事件等。...中调用刚刚定义的对话框,首先需要对话框的实例化,然后根据对话框的需要,调用对话框的方法。...alertdialog 是sdk封装好的一个对话框,我们可以直接调用的。...需要注意的是,该类是静态的,无需实例化,可以直接调用。
DialogFragment 意义 它和Fragment基本一致的生命周期,因此便于Activity更好的控制管理DialogFragment。...随屏幕旋转(横竖屏幕切换)DialogFragment对话框随之自动调整对话框大小。AlertDialog和PopupWindow随屏幕切换而消失,并且如果处理不当很可能引发异常。...DialogFragment的出现完美的解决了横竖屏幕切换Dialog消失的问题。...)方法来创建一个DialogFragment,这个方法返回的是一个Dialog,意味着我们需要创建一个AlertDialog,并返回。...savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the
“字体要大、颜色要鲜艳”,这话听着熟悉吧,在日常开发中,往往因为业务的不同、受众群体的特殊,可能需要我们做出特殊的处理。 今天是对原生AlertDialog做一些大小和颜色的修改。...这里主要说的是第二种方案 效果图对比 先看一下修改前的代码 AlertDialog builder = new AlertDialog.Builder(Activity.this)...这时候点开AlertDialog查看源码,构造方法以下就是get set 方法了,可以看到一个getButton方法 这里的返回是一个button,看注释,可以返回 “确定取消” 按钮,那既然得到...看代码: AlertDialog builder = new AlertDialog.Builder(Activity.this) .setTitle("这是标题")...builder.getButton(AlertDialog.BUTTON_POSITIVE).setTextSize(26); builder.getButton(DialogInterface.BUTTON_NEGATIVE
其中最常用的是AlertDialog,而且需要自定义对话框的时候,多半也是在AlertDialog.Builder基础上集成其他的控件,具体参见《Android开发笔记(六十六)自定义对话框》。...最后还要提供一个回调接口,用于主页面上处理日期和时间的选择事件,同时在确定按钮的点击事件中要触发该回调接口的方法。...:"+DateUtil.getTimeCN(time), Toast.LENGTH_LONG).show(); } } 信息确认对话框 虽说AlertDialog可用于自定义对话框,但其实只是它内部的...android.app.Dialog; import android.app.DialogFragment; import android.app.AlertDialog.Builder; import...另外,文件(夹)列表需要用ListView来展示,所以得补充ListView必须的适配器与监听器,适配器ArrayAdapter用于展示文件和文件夹列表,监听器用于响应文件项的点击事件。
f.isDirectory()); } 设置好了文件的名字和保存路径之后,对 mRecorder 进行一系列参数的设置,这个 mRecorder 是 MediaRecorder 的一个实例,专门用于录音的存储...,总不能让 App 跳转到另外一个界面吧,这样用户体验并不是很好,比较好的方法是显示一个对话框,让用户进行操作,既然要用对话框,必然离不开 DialogFragment,对于 DialogFragment...不是很了解,可以先看看我这篇文章 Android 撸起袖子,自己封装 DialogFragment。...builder = new AlertDialog.Builder(getActivity()); View view = getActivity().getLayoutInflater...Android 撸起袖子,自己封装 DialogFragment 手把手教你从零开始做一个好看的 APP
——高尔基 如果想要安卓的dialog点击按钮后默认不关闭弹框,可以这么写 AlertDialog.Builder builder = new AlertDialog.Builder(context...); AlertDialog alertDialog = builder.setPositiveButton("保存", null) .setNegativeButton...; }).create(); alertDialog.show(); alertDialog.getButton(...AlertDialog.BUTTON_POSITIVE).setOnClickListener(v1 -> { RestVolleyDownload.DownloadResponse
通常情况下我们创建的AlerDialog代码如下 AlertDialog alertDialog = new AlertDialog.Builder(this)...但如果我们在弹窗里添加一个EditText输入框,判断如果输入框为空的时候弹提示而告诉用户输入框为空,请输入内容。 这种情况就需要保留AlertDialog让它不消失。...AlertDialog按钮不消失的需求 当我们在自己定义的监听里需要让AlertDialog消失时,调用alertdialog.cancle()即可 整体代码如下 //创建输入框...EditText et = new EditText(this); AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle...setNegativeButton("取消", null) .show(); //拿到按钮并判断是否是POSITIVEBUTTON,然后我们自己实现监听 alertDialog.getButton
大家好,又见面了,我是你们的朋友全栈君。...AlertDialog.Builder setPositiveButton 与 setNegativeButton 点击时都会自动关闭 dialog,但是 文本控制 不想其关闭 两种方法 ①: LayoutInflater...LayoutInflater.from(mActivity); View view = inflater.inflate(R.layout.dialog_chang_script_id, null); AlertDialog.Builder...builder.setPositiveButton(mActivity.getString(R.string.script_btn_yes), null); builder.create(); final AlertDialog...dialog = builder.create(); dialog.show(); dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener
定义一个DialogFragment展示数据,不熟悉DialogFragment的同学请参考 AltertDialog在DialogFragment中的使用 package com.pansoft.oilgas.gaodenavigation...; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import...} } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder...builder=new AlertDialog.Builder(getActivity()); builder.setTitle("当前位置信息"); builder.setMessage...4.在地图上标注我的位置 在原来代码的基础上,添加地图MapView 不熟悉的同学,请参考 加载一张高德地图 在onCreate中添加,获取我的位置的相关部分 // show my location
日期对话框 - TimePickerDialog 时间对话框 所有对话框,都是直接或简介继承自 Dialog,其它的几个类均继承自 AlertDialog。...普通弹框 public void showDialog(View v) { // 这里的属性可以一直设置,因为每次设置后返回的是一个builder对象 AlertDialog.Builder...AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("选择你最喜欢的妹子")....AlertDialog.Builder(this); builder.setTitle("选择你最喜欢的妹子")....dialog.show(); } 自定义布局弹框 可以通过创建一个自定义布局,然后调用 AlertDialog.Builder对象上的 setView()方法将其添加到 AlertDialog
今天,随着即将来到我们身边的的Apple Watch,云,社交,移动以及数据科学融合到手腕的趋势变得更加清晰。...像其他苹果设备一样,Apple Watch 重新让我们想像人与科技的关系,重新定义人们从事工作的方式。 可穿戴设备提供一个巨大的机会为企业与客户、合作伙伴、员工甚至是产品连接的一种全新的方式。...事实上,68%的高管认为可穿戴设备是他们未来应该优先考虑的新科技—根据市场研究公司Forrester Research的调查。...只需在手机的主屏幕中简单点击,并且你可以钻取到原始数据中看到团队销售最好的产品,你的业绩和预测的比对,谁得到了一个新客户…这样的例子不胜枚举。...最好的消息是什么?上面提到的仅仅是冰山一角。
创建项目 使用Xamarin开发安卓项目,首先需要安装VS2017以上版本。因为VS2017以上的版本,可以直接创建Xamarin项目。...另外用Xamarin开发安卓项目,还需要使用Intel的CPU,并且得是双核以上的CPU,因为调试时,需要使用电脑的虚拟化,奔腾4之类的CPU是不支持虚拟化的。...Xamarin的视图和Android的视图是一样的,所以我们尽可上网找一些资源来使用。 我们先修改视图代码如下: { this.ShowToast("Click Me"); }); Xamarin的调试 Xamarin的调试非常简单,只要配置好模拟器按F5调试就可以了,因为VS2017集成了Emulator...从图中我们可以看到,我们的安装项目已经成功运行了,并且执行了点击事件。 到此,这个简单的安卓项目已经创建完成了,下一篇文章,将介绍Xamarin中如何使用安卓控件。
效果入下 之前只是简单的说了一下接口,只是知道它定义以后,设置并回调…OK我再举个栗子,加深一下印象 使用Interface进行传值 (设置一个DialogFragment页面) public class...LoginDialogFragment extends DialogFragment { private EditText mUsername; private EditText...password); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder...builder = new AlertDialog.Builder(getActivity()); View view = getActivity().getLayoutInflater...接口的引用指向实现的对象。 一个类可以实现多个无关的接口(这点和继承要有所区别) 和继承一样,接口与实现类之间存在多态性。 接口可以继承其他的接口,并添加新的属性和抽象方法。
因为实习项目中涉及到类似于时钟设置闹钟反复时间的原因须要使用对话框的方式呈现。因为DialogFragment眼下还没实验出嵌套Fragment的方法。...所以临时先用AlertDialog.Builder中的setMultiChoiceItems取代,因为网上搜索时都仅仅有显示的代码,没有关于点击事件进行操作的演示样例。...DAY_OF_WEEK[]则是一个存放星期数的一个常量字符串数组 new AlertDialog.Builder(getActivity())...() {//此处的Listener导包的话须要导入DialogInterface包,假设像我一样因为这个类中须要使用到View中的Listener,则能够按我这样的方式加上前缀...item的标号。
作为一名Android世界的搬运工,每天搬砖已经够苦够累了,走在坑坑洼洼的道路一不小心就掉坑里了。...以下经验是AC在开车时的出现事故的小笔记。...如果页面中的的样式如果出现了很奇怪的渲染(花屏,闪烁等异常),看看所在的Activity或者View是否添加了硬件加速。...AlertDialog 按确定按钮不消失的方法 AlertDialog dialog = builder.create(); dialog.setCanceledOnTouchOutside...(true); dialog.show(); dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
Activity 生命周期 前面我们看了Activity的综述。本文我们来看它的生命周期。 Android官方文档介绍的很详细。 这里我们打一些log仔细观察一下生命周期的变化。...[生命周期图示] 生命周期变化 执行一些常见的操作,打log看一下生命周期的变化。...弹出AlertDialog 点击按钮弹出一个AlertDialog。观察发现调用了onWindowFocusChanged。...onWindowFocusChanged: hasFocus: false onWindowFocusChanged: hasFocus: true 这里也可以用DialogFragment来做测试。...onPause和onStop的区别 onPause() 执行非常简单,而且不一定要有足够的时间来执行保存操作。