安卓基础(十七)

对话框

  • 对话框

    • 简介
    • 正文
    • 扩展阅读

目标人群:没有基础的安卓初学者

知识点:DialogFragment的创建与调用

目标:在页面中显示一个含有两个按钮的对话框

简介

  • 对话框的介绍已导入准备
  • DialogFragment类的简单调用

正文

1.对话框是出现在用户眼前的一个小小的窗口,用于让用户即时的做出一些操作。在3.0之后的安卓版本中,统一建议使用DialogFragment来实现,对于低版本的安卓系统来说,首先我们需要在build.gradle中添加对support V4包的引用,代码如下:

dependencies {
    ...
    compile ‘com.android.support:support-v4:21.0.3‘
    ...
}
  • 也可以在项目中选择Open Module Settings-Dependencies-点击右侧加号-Library Dependency-选中appcompat-V4来进行添加
  • 如果为高于3.0之后的安卓版本,则不需要考虑此处
  • 以下示例为support-v4版本

2.创建一个FragmentActivity页面,命名为MainActivity,创建两个方法来对应对话框按钮的点击事件:

    public void doPositiveClick() {
        Log.i("FragmentAlertDialog", "Positive click!");
    }

    public void doNegativeClick() {
        Log.i("FragmentAlertDialog", "Negative click!");
    }

3.创建一个DialogFragment页面,命名为MyAlertDialogFragment,并实现它的onCreateDialog方法,代码如下:

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;

public class MyAlertDialogFragment extends DialogFragment {

    public static MyAlertDialogFragment newInstance(String title) {
        //创建一个新的对话框,并得到从调用页面传来的Title值
        MyAlertDialogFragment frag = new MyAlertDialogFragment();
        Bundle args = new Bundle();
        args.putString("title", title);
        frag.setArguments(args);
        return frag;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        /** 得到Title值,并创建一个对话框,该对话框包含两个按钮
           当两个按钮被点击时,分别调用了MainActivity页面的doPositiveClick和doNegativeClick方法 **/
        String title = getArguments().getString("title");
        return new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.ic_launcher)
                .setTitle(title)
                .setPositiveButton("确定",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                ((MainActivity) getActivity()).doPositiveClick();
                            }
                        }
                )
                .setNegativeButton("取消",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                ((MainActivity) getActivity()).doNegativeClick();
                            }
                        }
                )
                .create();
    }
}

4.回到MainActivity中,使用代码来调用该DialogFragment,代码如下:

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        showDialog();
    }

    public void showDialog() {
        DialogFragment newFragment = MyAlertDialogFragment.newInstance("两个按钮的对话框");
        newFragment.show(getSupportFragmentManager(), "alert");
    }
  • 当然也可以将该Fragment作为视图结构中的一员,以此来调用该DialogFragment
FragmentTransaction ft = getFragmentManager().beginTransaction();
DialogFragment newFragment = MyDialogFragment.newInstance();
ft.add(R.id.embedded, newFragment);
ft.commit();

扩展阅读

  1. DialogFragment的官方API
  2. Dialogs的官方API
时间: 2024-10-01 08:08:54

安卓基础(十七)的相关文章

安卓基础01

安卓基础01 SDK System images 这是在创建模拟器时需要的system image,也就是在创建模拟器时CPU/ABI项需要选择的,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/system-images文件夹下即可, 如果没有 system-images目录就先 创建此文件夹,然后打开SDK Manager,打开Tools(工 具)菜单选择Options(选项)菜单项打开Android SDK Manager Setting对话框,点击Clear C

回顾安卓基础

以前老张教c的时候说过:学的越多,总结的越少,就越好. 开始的时候不能理解,现在终于慢慢悟出了. 准备慢慢总结一下经常用到的安卓基础,算是重温一下美好记忆吧.个人博客记录个人心得,希望开心自己的同时也能够帮助别人. 从布局开始吧: 总结相对布局: 1.父控件与子控件的关系(alignParentXXX) 2.控件与指定控件的位置关系.(above,below,toRightOf,toLeftOf) 3.控件与指定控件的对其关系(alignTop,alignBottom,alignLeft,ali

安卓基础开发-短信发送器

一个安卓基础开发小案例,短信发送器: 代码演示图: 布局文件: activity_main.xml <span style="font-family:Comic Sans MS;font-size:14px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/

Bootstrap&lt;基础十七&gt;导航栏

导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏在您的应用或网站中作为导航页头的响应式基础组件.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开.在 Bootstrap 导航栏的核心中,导航栏包括了站点名称和基本的导航定义样式. 默认的导航栏 创建一个默认的导航栏的步骤如下: 向 <nav> 标签添加 class .navbar..navbar-default. 向上面的元素添加 role="navigation",有助

安卓基础

1.  Service 服务 (是一个没有用户界面的在后台运行执行耗时操作的应用组件) 第一种方式: (startService 未绑定, 当程序退出,若没有停止服务则会继续在后台运行) //继承 Service public class MyService extends Service { private String tag = "MyService"; @Override public IBinder onBind(Intent intent) { // TODO Auto-g

安卓基础之主题/样式

安卓基础之主题/样式 样式:一般作用在控件上,使多个控件拥有相同风格 主题:一般作用清单文件的activity或application结点下 样式Style的使用 系统自动在app/res/values/路径下建立style.xml文件,用来添加,引用Style,因此一般情况下我们在这个文件中定义自己的Style就可以了. 定义好一个style后,我们就可以在定义控件时调用这个Style 如果我们要在界面中定义样式相似的多个组件,我们可以把控件中的相同的属性抽出来,自定义Style,定义控件时引

[安卓基础] 004.运行app

运行你的app 这篇课程会教你: 1.如何在设备上运行你的app. 2.如何在模拟器上运行你的app. 当然,在学习之前,你还需要知道: 1.如何使用设备. 2.如何使用模拟器. 3.管理你的项目. 上一节课我们创建了一个android项目.它是可以直接运行的.当我们创建好它时,它就默认帮我们写好了一个Hello World!的界面.运行就可以看到. 在运行项目前,我们还是先了解一下android项目的各个目录和文件是做什么用的吧. AndroidManifest.xml manifest,载货

安卓基础(十)

列表-配置 列表-配置 简介 正文 目标人群:没有基础的安卓初学者 知识点:RecyclerView的使用 目标:用在页面中使用RecyclerView展示列表数据 简介 RecyclerView的Android Studio的配置 正文 1.将android-support-v7-recyclerview.jar复制到项目代码对应libs目录下. 你可以在sdk\extras\android\support\v7\recyclerview\libs目录下找到这个包 以MyApplication

安卓基础(十五)

上面的动作条 上面的动作条 简单介绍 正文 扩展阅读 目标人群:没有基础的安卓刚開始学习的人 知识点:在Android Studio中使用support V7包来实现ActionBar的效果 目标:在页面上显示一个ActionBar 简单介绍 support V7包的导入 ActionBar的简单使用 正文 1.首先我们须要在build.gradle中加入对support V7包的引用,代码例如以下 dependencies { ... compile 'com.android.support: