第三部分:Android 应用程序接口指南---第二节:UI---第六章 对话框
第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(); } }
更多相关文章
- Android记录4--自定义ToggleButton+用SharedPreferences保存用户
- Android UI之弹出对话框
- Android基础 - 对话框和浮动Activity
- android datepickerdialog 怎样在第一次弹出对话框的时候不能选
- 点击或长按的Android Listview用户交互设计上下文菜单
- Android-Dialog对话框 全解(普通对话框,单选对话框,多选对话框,列表
- Android中的AlertDialog使用示例四(多项选择确定对话框)
- Android在Service中弹出对话框(Dialog),即全局性对话框
- Android:创建常见对话框以及使用对话框实现登陆