Android的DialogFragment的基本使用

1.API不小于11;

2.使用方法:

(1)新建对话框的类必须继承于DialogFragment:

  对话框中有一按钮,点击按钮后关闭对话框。

  代码如下:

 1 @SuppressLint("ValidFragment")
 2 public class MatchDialog extends DialogFragment {
 3
 4     public MatchDialog() {
 5     }
 6
 7     Dialog mDialog;
 8     MatchTextView matchTextView;
 9     MatchButton mMatchButton;
10
11     @Override
12     public Dialog onCreateDialog(Bundle savedInstanceState) {
13         if (mDialog == null) {
14             mDialog = new Dialog(getActivity(), R.style.cart_dialog);
15             mDialog.setContentView(R.layout.dialog_match);
16             mDialog.setCanceledOnTouchOutside(true);
17             mDialog.getWindow().setGravity(Gravity.CENTER);
18             View view = mDialog.getWindow().getDecorView();
19             matchTextView = (MatchTextView) view.findViewById(R.id.mTextView);
20             matchTextView.setMatchOutListener(new MatchView.MatchOutListener() {
21                 @Override
22                 public void onBegin() {
23
24                 }
25
26                 @Override
27                 public void onProgressUpdate(float progress) {
28                 }
29
30                 @Override
31                 public void onFinish() {
32                     MatchDialog.super.onStop();
33                 }
34             });
35
36             mMatchButton = (MatchButton) view.findViewById(R.id.mButton);
37             mMatchButton.setOnClickListener(new View.OnClickListener() {
38                 @Override
39                 public void onClick(View v) {
40                     mMatchButton.hide();
41                     matchTextView.hide();
42                 }
43             });
44         }
45         return mDialog;
46     }
47 }

(2)调用对话框的Activity要继承FragmentActivity:

  

 1 public class MainActivity extends FragmentActivity {
 2
 3     private MatchTextView mMatchTextView;
 4     private SeekBar mSeekBar;
 5
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.activity_main);
10
11         mMatchTextView = (MatchTextView) findViewById(R.id.mMatchTextView);
12         mSeekBar = (SeekBar) findViewById(R.id.mSeekBar);
13         mSeekBar.setProgress(100);
14         mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
15             @Override
16             public void onProgressChanged(SeekBar seekBar, int progress,
17                     boolean fromUser) {
18                 mMatchTextView.setProgress(progress * 1f / 100);
19             }
20
21             @Override
22             public void onStartTrackingTouch(SeekBar seekBar) {
23
24             }
25
26             @Override
27             public void onStopTrackingTouch(SeekBar seekBar) {
28
29             }
30         });
31
32         findViewById(R.id.mButton).setOnClickListener(
33                 new View.OnClickListener() {
34                     @Override
35                     public void onClick(View v) {
36                         showMatchDialog();
37                     }
38                 });
39     }
40
41     protected void showMatchDialog() {
42          MatchDialog matchDialog = new MatchDialog();
43          getSupportFragmentManager().beginTransaction().add(matchDialog, "matchDialog").commit();
44     }
45
46 }

时间: 2024-10-03 17:43:23

Android的DialogFragment的基本使用的相关文章

Android 继承DialogFragment弹出dialog对话框一

相信现在Android软件开发员,都经常用到这种方式弹出对话框的.Android继承DialogFragment弹出dialog对话框,这样弹出有很多可以灵活处理地方,想什么启动,什么时候数据接口返回都可以,有自已layout布局,生命周期.下面看看我写demo. 本文代码下载:请点击这里 转载请注明出处: http://blog.csdn.net/qq_16064871 一.MainActivity package com.example.fragmentdialogdemo; import

Android 继承DialogFragment弹出dialog对话框二

之前写过一篇关于Android 继承DialogFragment弹出dialog对话框一,这次是在上次的基础上修改了一些东西,就是怎样在DialogFragment中获取getDialog()是获取当前对话框句柄.就可以进行布局可变的灵活操作.就像getactivity();一样使用.下面看代码. 本文demo下载地址:点击 MainActivity package com.example.fragmentdialogdemo; import com.example.fragmentdialog

Android用DialogFragment实现iphone样式的圆角对话框

Android实现iphone样式的对话框,主要是借助shape,corner元素方法. 下面的circular_corner_dialog.xml文件定义了一个圆角矩形.corner元素指定了圆角矩形的圆角半径,而gradient元素则指定了色彩渐变的方向以及起始颜色.当然也可以使用shape创建其它各种图形,如椭圆.线条以及环等,并设置不同的视觉风格. res/drawable/circular_corner_dialog.xml <?xml version="1.0" en

Android:自定义DialogFragment的内容和按钮

小问题,记录下~ Android4.0以后开始推荐使用DialogFragment代替Dialog.Android的官方文档中给了两个示例: 一个Basic Dialog 示例了如何自定义窗口内容--重写onCreateView方法. 一个Alert Dialog 示例了如何自定义弹窗的正负按钮--重写onCreateDialog方法. 好的,那么问题来了 在实际应用中经常是需要既自定义窗口内容.又需要自定义按钮的. 这时候如果我们按图索骥,把DialogFragment的onCreateVie

android通过DialogFragment实现时间选择

在android开发中,时间控件是不可或缺的一部分,特别是在设置个人生日或按时间进行搜索时都要用到.Android有内置的DatePicker和timePicker,使用起来也是相当的方便,既可以在布局中添加后findViewById调用,也可以直接在activity中重写onCreateDialog(int id)方法后调用showDialog(int id)弹出,现在网上关于android时间控件的demo也大都基于这两个控件的使用说明.但用过这两个控件的人都知道,这两个时间选择框有两个不太

Android 自定义dialogfragment

在用dialogfragment的时候我们可能会不喜欢系统自带的黑色边框,那怎么办呢? dialofragment提供可供修改样式的方法setStyle(style,R.style.MyTryUseDialogFragment); 里面两个参数可以用系统自带的也可以自定义,MyTryUseDialogFragment就是我自定义的style 在style文件下新建内容如下: 1 <style name="MyTryUseDialogFragment" parent="@

Android开发 DialogFragment对话框详解

前言 在聊DialogFragment之前,我们看看以往我们在Android里实现一个对话框一般有这几种方式: Dialog 继承重写Dialog实现一个自定义的Dialog AlertDialog Android原生提供的对话框(底层是继承Dialog实现) PopupWindow 用弹出悬浮框,实现对话框.这种对话框可以用在指定位置显示,一般用于一些非常小的按键弹窗.怎么实现可以参考我的博客:https://www.cnblogs.com/guanxinjing/p/10156153.htm

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

1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等.在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog.注:官方不推荐直接使用Dialog创建对话框. 2. 好处与用法 使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的

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

转: Android 官方推荐 : DialogFragment 创建对话框 复制内容,留作备份 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等.在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog.注:官方不推荐直接使用Dialog创建对话框. 2. 好处与用法 使用DialogFragment