我注意到可以执行以下操作:
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
来传递创建时的任何值吗?
答案 0 :(得分:0)
是的,您始终必须使用setArguments
在创建时将参数传递给片段。
每个片段都必须有一个空的构造函数,所以它可以 在恢复其活动状态时实例化。这是强烈的 建议子类没有其他构造函数 参数,因为这些构造函数不会被调用 片段被重新实例化;相反,参数可以由。提供 调用者使用setArguments(Bundle),然后由Fragment检索 使用getArguments()。 http://developer.android.com/reference/android/app/Fragment.html