相关疑难解决方法(0)

实例化新Android片段的最佳实践

我已经看到了两个在应用程序中实例化新Fragment的一般实践:

Fragment newFragment = new MyFragment();
Run Code Online (Sandbox Code Playgroud)

Fragment newFragment = MyFragment.newInstance();
Run Code Online (Sandbox Code Playgroud)

第二个选项使用静态方法newInstance(),通常包含以下方法.

public static Fragment newInstance() 
{
    MyFragment myFragment = new MyFragment();
    return myFragment;
}
Run Code Online (Sandbox Code Playgroud)

起初,我认为主要的好处是我可以重载newInstance()方法以在创建Fragment的新实例时提供灵活性 - 但我也可以通过为Fragment创建重载构造函数来实现这一点.

我错过了什么?

一种方法比另一种方法有什么好处?还是只是好习惯?

android android-fragments

677
推荐指数
7
解决办法
30万
查看次数

在将片段添加到活动后,是否可以将参数传递给片段?

我知道当你第一次实例化一个片段时,你可以使用传递参数setArguments(Bundle)并在片段中检索它们getArguments().

但是,在我的应用程序中,我有片段,在将它们添加到活动后将被分离并附加多次.在重新附加时,我可能需要传递一个片段参数来修改其内容,然后再重新附加它.我可以setArguments在第一次显示片段时使用,但在后续的情况下无法使用.该savedInstanceState不会在这种情况下工作,我不知道之前卸下片段参数的值.

我知道我可以在附加设置参数的片段之前实现一个我会调用的方法,但看起来这可能已经存在于API中而我只是没有看到它.

是否有内置的东西可以让我这样做,或者我必须自己实现这个?为了记录,我正在使用支持包(v4).

非常感谢!

android android-fragments

27
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×2

android-fragments ×2