静态工厂方法在实现Fragment时设置私有变量

时间:2015-09-30 10:54:36

标签: android android-fragments fragment factory

我注意到可以执行以下操作:

private int mSomeValue;
public static MyFragment newInstance(int someValue){
    MyFragment myFragment = new MyFragment();
    myFragment.mSomeValue = someValue;
    myFragment.doSth();
    return myFragment;
}
private void doSth(){
    //do sth
}

我的问题如下 - 这是一种可接受的方法,例如:设置值或侦听器或自定义Fragment实例的任何其他初始状态?或者我应该始终使用setArguments来传递创建时的任何值吗?

1 个答案:

答案 0 :(得分:0)

是的,您始终必须使用setArguments在创建时将参数传递给片段。

  

每个片段都必须有一个空的构造函数,所以它可以   在恢复其活动状态时实例化。这是强烈的   建议子类没有其他构造函数   参数,因为这些构造函数不会被调用   片段被重新实例化;相反,参数可以由。提供   调用者使用setArguments(Bundle),然后由Fragment检索   使用getArguments()。   http://developer.android.com/reference/android/app/Fragment.html