我有这段代码:
public static DateDialogFragment newInstance(Context context, DateDialogFragmentListener listener) {
DateDialogFragment dialog = new DateDialogFragment();
mContext = context;
mListener = listener;
/*I dont really see the purpose of the below*/
Bundle args = new Bundle();
args.putString("title", "Set Date");
dialog.setArguments(args);
return dialog;
}
Run Code Online (Sandbox Code Playgroud)
非常自我解释,但我不明白的是给它一个Bundle的重点.我猜我从来没有真正利用它.Android Doc对此(对于片段)的解释如下:http://developer.android.com/reference/android/app/Fragment.html#setArguments (android.os.Bundle) 构造参数到底意味着什么?由于它从未使用过,我没有看到它的使用.任何解释都非常感激.谢谢.
它只是一种通用机制,可以附加您可能希望用于配置Fragment或在操作期间读取的数据值,类似于您可以通过它将a Bundle中的额外内容传递给新Activity的Intent.
但是,我确实同意,因为Fragment可以使用其构造函数实例化,而Activity不能实现,API的有用性可能会受到损害,因为您可以在返回实例之前轻松配置Fragment使用setter方法和成员变量newInstance().例如,您的代码可以在您可以调用的Fragment被setTitle()调用方上实现一个方法,而您不需要将其作为参数传递.但是,如果该模型适合您的应用程序,则参数确实提供了将此信息存储为键/值数据的好方法.
关于a的参数的一个关键区别Fragment是它们被保留为已保存实例状态的一部分.因此,如果您的UI旋转或某些其他更改需要Fragment重新创建,则Bundle附加的参数将被保留并传回新实例.
HTH
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |