gpt4 book ai didi

android - setArguments 的意义何在?

转载 作者:IT王子 更新时间:2023-10-28 23:59:35 24 4
gpt4 key购买 nike

您好,我在 android 网站上查看以下 Fragments 示例。

http://developer.android.com/guide/components/fragments.html#Example

我想知道为什么要执行某些方法。

例如,为什么在 detailsFragment 中执行以下方法:

public static DetailsFragment newInstance(int index) {
DetailsFragment f = new DetailsFragment();

// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt("index", index);
f.setArguments(args);

return f;
}

难道你不能简单地实例化 DetailsFragment 并使用 setter 方法来设置 index。绕过整个 setArguments

首先使用 setArguments 有什么意义?不能只使用 setter 和 getter 吗?

最佳答案

您可以使用 getter 和 setter,但通过传入一个包,您无需编写该代码,因为它已经存在。另外,我相信如果屏幕方向发生变化,这些参数会自动再次传入,这也让生活更轻松。

从本质上讲,setArguments 和 getArguments 只是 Google 建议您遵循的一种设计模式:

Every fragment must have an empty constructor, so it can be instantiated when restoring its activity's state. It is strongly recommended that subclasses do not have other constructors with parameters, since these constructors will not be called when the fragment is re-instantiated; instead, arguments can be supplied by the caller with setArguments(Bundle) and later retrieved by the Fragment with getArguments(). http://developer.android.com/reference/android/app/Fragment.html

我认为这包括您的 Fragment 也需要运行的 setter。话又说回来 - 没有什么强制你这样做,而且如你所知 - 这不是让事情发挥作用的唯一方式。

关于android - setArguments 的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com