Android开发之基于DialogFragment创建对话框的方法示例

本文实例讲述了Android基于DialogFragment创建对话框的方法。分享给大家供大家参考,具体如下:

/**
 * 使用DialogFragment创建对话框
 * @description:
 * @author ldm
 * @date 2016-5-12 下午2:00:01
 */
public class FragmentAlertDialog extends Activity {
  private Button button;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_dialog);
    // 初始化Button及设置监听
    button = (Button) findViewById(R.id.show);
    button.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // 弹出对话框
        showDialog();
      }
    });
  }
  void showDialog() {
    // DialogFragment 创建对话框
    DialogFragment newFragment = MyAlertDialogFragment
        .newInstance(R.string.alert_dialog_two_buttons_title);
    newFragment.show(getFragmentManager(), "dialog");
  }
  public void doPositiveClick() {
    Log.i("FragmentAlertDialog", "Positive click!");
  }
  public void doNegativeClick() {
    Log.i("FragmentAlertDialog", "Negative click!");
  }
  /**
   * 自定义弹出对话框DialogFragmet
   *
   * @description:
   * @author ldm
   * @date 2016-5-12 下午1:54:31
   */
  public static class MyAlertDialogFragment extends DialogFragment {
    public static MyAlertDialogFragment newInstance(int title) {
      MyAlertDialogFragment frag = new MyAlertDialogFragment();
      Bundle args = new Bundle();
      args.putInt("title", title);
      frag.setArguments(args);
      return frag;
    }
    /**
     * DialogFragment需要实现onCreateView或者onCreateDIalog方法。
     * onCreateView():使用定义的xml布局文件展示Dialog。
     * onCreateDialog():利用AlertDialog或者Dialog创建出Dialog。
     */
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
      int title = getArguments().getInt("title");
      return new AlertDialog.Builder(getActivity())//创建一个Dialog
     .setIcon(R.drawable.alert_dialog_icon)//设置图标
     .setTitle(title)//设置标题
     .setPositiveButton(R.string.alert_dialog_ok,
       new DialogInterface.OnClickListener() {//确认(OK)按钮
        public void onClick(DialogInterface dialog,
          int whichButton) {
         ((FragmentAlertDialog) getActivity())
           .doPositiveClick();
        }
       })
     .setNegativeButton(R.string.alert_dialog_cancel,//取消(Cancel)按钮
       new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,
          int whichButton) {
         ((FragmentAlertDialog) getActivity())
           .doNegativeClick();
        }
       }).create();
    }
  }
}

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center_horizontal"
  android:orientation="vertical"
  android:padding="4dip" >
  <TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|center_horizontal"
    android:layout_weight="1"
    android:gravity="top|center_horizontal"
    android:text="Example of displaying an alert dialog with a DialogFragment"
    android:textAppearance="?android:attr/textAppearanceMedium" />
  <Button
    android:id="@+id/show"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:text="@string/show" >
  </Button>
</LinearLayout>

开源代码:https://github.com/ldm520/ANDROID_API_DEMOS

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android ProgressDialog的实例详解

    Android ProgressDialog的实例详解 当自己做一些耗时操作时,希望给用户一些提示信息,告诉用户正在进行耗时操作,这时就可以用到ProgressDialog. 1.新建一个全局变量ProgressDialog private ProgressDialog mDialog; 2.设置ProgressDialog的相关参数: progressDialog = new ProgressDialog( ProgressDialogActivity.this); //设置进度条风格,风格为

  • Android 提交或者上传数据时的dialog弹框动画效果

    效果图如下所示: 类似这种弹框里含有动画,一般我们在上传数据或者支付的时候会用到,当然,假如我们换几张图片,还可以把它当做是加载数据的时候使用,总之这是一个dialog弹框,只不过这个弹框在弹出后,上面有动画的运行. 上代码 首先是布局文件 : <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="200dp" andr

  • Android自定义对话框Dialog的简单实现

    本文着重研究了自定义对话框,通过一下步骤即可清晰的理解原理,通过更改界面设置和style类型,可以应用在各种各样适合自己的App中. 首先来看一下效果图: 首先是activity的界面 点击了上述图片的按钮后,弹出对话框: 点击对话框的确定按钮: 点击对话框的取消按钮: 下面来说一下具体实现步骤: 第一步:设置Dialog的样式(一般项目都可以直接拿来用):style.xml中 <!--自定义Dialog背景全透明无边框theme--> <style name="MyDialo

  • Android通过自定义Activity实现悬浮的Dialog详解

    前言 其实实现悬浮的自定义窗体有很多方法,自定义Dialog,自定义layout 均可以实现.自定义activity也是可以的,今天我就介绍一下activity的实现方法.下面来看看详细的介绍: 效果图 如图可以看出,当前的窗体,第一眼其实和dialog没有什么区别,但是它是自定义activity实现.如何实现的呢? 代码如下: 新建activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCr

  • 浅析Android Dialog中setContentView()方法

    概述 Dialog在Android中是一个很优秀的工具.在使用Dialog时,我们一般都会自定义要显示的内容布局.Dialog自带了三个方法来支持自定义内容布局. public void setContentView (int layoutResID); public void setContentView (View view); public void setContentView (View view, ViewGroup.LayoutParams params); 这三个方法内部的实现原

  • Android编程实现activity dialog透明背景的方法

    本文实例讲述了Android编程实现activity dialog透明背景的方法.分享给大家供大家参考,具体如下: 首先查一下window  activity的关系 具体省略.... 我的理解就是 每个activity都有一个window 也就是view的最顶层容器 activity是提供给用户交互的一组View容器(window的child) 层次关系是 <window> <activity> </activity> </window> 所以说如果需要设置

  • Android 开发之Dialog中隐藏键盘的正确使用方法

    Android 开发之Dialog中隐藏键盘的正确使用方法 场景:弹出一个Dialog,里面有一个EditText,用来输入内容,因为输入时,需要弹出键盘,所以当Dialog消失时,键盘要一起隐藏. 现在我们做一个自定义的Dialog MyDialog extends Dialog 一开始认为这个功能很容易实现,于是写了下面的代码 //Dialog的构造函数中写 this.setOnDismissListener(new OnDismissListener() { @Override publi

  • Android开发之基于DialogFragment创建对话框的方法示例

    本文实例讲述了Android基于DialogFragment创建对话框的方法.分享给大家供大家参考,具体如下: /** * 使用DialogFragment创建对话框 * @description: * @author ldm * @date 2016-5-12 下午2:00:01 */ public class FragmentAlertDialog extends Activity { private Button button; @Override protected void onCre

  • Android开发中自定义ProgressBar控件的方法示例

    本文实例讲述了Android开发中自定义ProgressBar控件的方法.分享给大家供大家参考,具体如下: 很简单,首先加载Drawable,在onMeasure设置好其区域大小, 然后使用canvas.clipRect绘图 public class ProgressView extends ImageView { private Drawable maskDraw; /** * 加载的进度 0-100 */ private int mProcess = 20; public ProgressV

  • Android开发必知 九种对话框的实现方法

    在开发过程中,与用户交互式免不了会用到对话框以实现更好的用户体验,所以掌握几种对话框的实现方法还是非常有必要的.在看具体实例之前先对AlertDialog做一个简单介绍.AlertDialog是功能最丰富.实践应用最广的对话框,它可以生成各种内容的对话框.但实际上AlertDialog生成的对话框总体可分为以下4个区域:图标区.标题区.内容区.按钮区. 这里总结了九种对话框的实现方法,有需要的朋友可以来学习下了 除了popupwindow实现稍微麻烦一点,其他形似都相对简单,熟悉2便即可 直接上

  • Android开发之基于RecycleView实现的头部悬浮控件

    RecyclerView是一种类似于ListView的一个滑动列表,但是RecyclerView和ListView相比,RecyclerView比ListView更好,RecyclerView支持横向滑动,RecyclerView没有点击事件,需要自己加入,还可以做出各种炫酷的效果动画,更符合高内聚低耦合, 前言 前几天看到一个RecycleView中筛选框滑动可以悬浮在头部的效果类似商机盒子中的商机模块. 本来想法很常规 通过Recycview装饰器来实现(刚开始是否定掉的感觉太难) 通过Re

  • Android开发之圆角矩形创建工具RoundRect类定义与用法分析

    本文实例讲述了Android开发之圆角矩形创建工具RoundRect类.分享给大家供大家参考,具体如下: 用于把普通图片转换为圆角图像的工具类RoundRect类(复制即可使用): RoundRect.java import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import an

  • Android开发设置RadioButton点击效果的方法

    本文实例讲述了Android开发设置RadioButton点击效果的方法.分享给大家供大家参考,具体如下: 在安卓开发中用到底部菜单栏 需要用到RadioButton这个组件 实际应用的过程中,需要对按钮进行点击,为了让用户知道是否点击可这个按钮,可以设置点击后 ,该按钮的颜色或者背景发生变化. layout中这部分的代码为: <RadioButton android:id="@+id/radio_button0" android:layout_height="fill

  • Android开发中Launcher3常见默认配置修改方法总结

    本文实例讲述了Android开发中Launcher3常见默认配置修改方法.分享给大家供大家参考,具体如下: Launcher概述 Launcher是开机完成后第一个启动的应用,用来展示应用列表和快捷方式.小部件等.Launcher作为第一个(开机后第一个启动的应用)展示给用户的应用程序,其设计的好坏影响到用户的体验,甚至影响用户购机的判断.所以很多品牌厂商都会不遗余力的对Launcher进行深度定制,如小米的MIUI.华为的EMUI等.Android默认的Launcher没有过多的定制,更加简洁

  • Android开发之使用SQLite存储数据的方法分析

    本文实例讲述了Android开发之使用SQLite存储数据的方法.分享给大家供大家参考,具体如下: 前面已经说到了几种文件的操作如sharedreference,sdcard.实际上Android还提供了另外的存储方式那就是sqlite.只要学习过数据库掌握这个也是没问题的.下面就和我一起来弄一下这个吧. 1. 安装一个SQLiteDeveloper,这个用来打开android生成的数据库.软件随便搜索就能找到,后面导出数据库只需打开软件点击"数据库"----->"注册

  • Android开发中简单设置启动界面的方法

    本文实例讲述了Android开发中简单设置启动界面的方法.分享给大家供大家参考,具体如下: 启动界面的意义是为了让后台处理耗时的复杂工作,当工作处理完成后,即可进入主界面.相比让用户等待布局加载完成,使用一张图片作为启动背景,会带来更好的体验. 首先,需要建立一个简单的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas

  • Android开发Intent跳转传递list集合实现示例

    目录 引言 传递list集合 传递ArrayList集合 传递实体类 传递String 引言 Android 两个activity之间普通传值 如:单个String ,int ... 就不多说了 参考文章 https://www.jb51.net/article/257178.htm 传递list集合 注意:list传值的实体类用序列化 先创建个实体类(等下测试用) import java.io.Serializable; //别忘了序列化 Serializable public class D

随机推荐