1.android的对话框是异步的,对话框创建后马上执行下面的代码。好处:
a.通过实现对话框的回调方法反馈用户与对话框的交互。
b.能够在代码中清楚对话框。
2.碎片对话框基类DialogFragment继承自Fragment。显示对话框的3个步骤
2.1创建一个对话框碎片实例
2.2获取碎片事务
2.3使用对话框碎片实例的show方法显示,show方法有两个版本,第一个版本接收FragmentManager参数,第二个版本接收FragmentTrancstion参数。 第二个版本可以有机会将碎片事务加到回退栈。第一个版本更加便捷。
3.有两个方法返回对话框碎片的视图结构,onCreateView和onCreateDialog。onCreateDialog返回一个对话框对象,对话框对象可以通过老风格的AlertDialog.Builder来创建。
4.清除对话框碎片也有两种方法 dismiss()和显示另一个对话框。
4.1对于dismiss(),会从碎片管理器中清除,会从返回栈中清除(如果有的话),会触发回调函数onDissmiss()执行。但是不能用onDismiss来确定是用户按键关闭对话框的,应该用onCancel,这个回调方法,会在用户按“返回”按钮时执行。
4.2 对于第二种方法,代码示例如下:
if (someview.getId() == R.id.btn_invoke_another_dialog)
{
Activity act = getActivity();FragmentManager fm = act.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.remove(this); //删除当前碎片
ft.addToBackStack(null); //可选,将当前碎片事务以匿名的方式保存到返回栈,如果从新碎片返回将再次显示
//null represents no name for the back stack transaction
HelpDialogFragment hdf =
HelpDialogFragment.newInstance(R.string.helptext);
hdf.show(ft, "HELP");
return;
}
5.对话框碎片与活动之间的通信
5.1活动实现接口
5.2对话框碎片调用绑定活动的接口反馈信息。
6.嵌入式对话框
6.1 在布局中增加容器
6.2 将碎片对话框扩充到这个容器上。