第6章 对话框

一个对话框是一个小窗口,提示用户做出决定或输入额外的信息,一个对话框不填充屏幕并且通常用于在程序运行时中断,然后弹出通知提示用户,从而直接影响到正在运行的程序。图6-1就是对话框的外观。

图6-1

Dialog类是所有具体对话框的基类,但你应该避免直接实例化Dialog。因为可能有些现成的已经给你提供好了,比如以下几种:

◆AlertDialog

一个对话框,可以显示一个标题(可选),三个按钮(可选),内容的列表(可选),或一个自定义布局。

◆DatePickerDialog或TimePickerDialog

一个对话框,其中有一个预定义的用户界面,允许用户选择一个日期或时间。

◆ProgressDialog

这个我们应该尽量避免使用,它用于显示进度条。但是,如果你如果需要显示这种加载或不确定的进度情况,更好的方法是Activity结合Progress,明确的在布局中使用ProgressBar来更新进度,以让用户明确的看到进度情况。

以上这些类定义了你对话框的风格和结构,但你也可以使用DialogFragment作为你对话框的容器。DialogFragment类提供所有创建和管理外观的控制力,它比直接调用Dialog对象中的方法更好。使用DialogFragment管理对话框可以确保它正确地处理生命周期事件,比如当用户按下后退按钮或旋转屏幕时。这个DialogFragment类还允许您重用对话框的用户界面,就像一个传统的Fragment (比如当你希望对话框在大型和小型屏幕中的UI不一样)。注意DialogFragment类在android3.0或以上版本中才有,如果你需要在低版本中使用它可以使用Support Library,添加这个库到你的应用中。一般比较新的ADT+Eclipse套装会自动把这个库添加到你的项目中。

6.1 创建一个对话框Fragment

你能完成各种各样的对话框设计:包括自定义布局和那些描述。通过DialogFragment创建一个AlertDialog并在onCreateDialog()回调方法中设置一些属性。如代码清单6-1所示:

public class FireMissilesDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // 使用Builder类更方便
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage(R.string.dialog_fire_missiles)
               .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       //相当于确定
                   }
               })
               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       // 相当于取消
                   }
               });
        // 创建AlertDialog对象并返回
        return builder.create();
    }
}

更多相关文章

  1. Android记录4--自定义ToggleButton+用SharedPreferences保存用户
  2. Android UI之弹出对话框
  3. Android基础 - 对话框和浮动Activity
  4. android datepickerdialog 怎样在第一次弹出对话框的时候不能选
  5. 点击或长按的Android Listview用户交互设计上下文菜单
  6. Android-Dialog对话框 全解(普通对话框,单选对话框,多选对话框,列表
  7. Android中的AlertDialog使用示例四(多项选择确定对话框)
  8. Android在Service中弹出对话框(Dialog),即全局性对话框
  9. Android:创建常见对话框以及使用对话框实现登陆

随机推荐

  1. 2011年Android产品趋势
  2. Android EditText 一些属性设置
  3. EditText的使用
  4. Android 输入法键盘和activity页面遮挡问
  5. Android 绘制中国地图及热点省份分布
  6. android 7和android8在user版本下能应用
  7. Android(安卓)NDK standlone编译脚本
  8. Android skia 和open skia的比较
  9. 通过 Android SDK Manager 安装面向 Andr
  10. 常用的布局和View常用属性