Fragments
で遊んで、私のフラグメントを生成する正しい方法が不思議になりました。フラグメントgetArgument()right location
ドキュメントは、私は私の断片に引数を追加するnewInstance()
パターンを使用し、言うように:
public static ItemFragment newInstance(ItemRealm item, AnnaleModel model) {
ItemFragment fragment = new ItemFragment();
Bundle args = new Bundle();
args.putString(MyPagerAdapter.KEY_ITEM, item.getId());
args.putParcelable(MyPagerAdapter.KEY_MODEL, model);
fragment.setArguments(args);
return fragment;
}
しかし、その後、私はネット上で起こって見ることができるいくつかの行動があります。
ほとんどのフィールドで結果をonCreateView()
方法でを入れて置くためにそれを見て:
protected String itemId;
protected Model mModel ;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle args = getArguments();
if (args == null || (!args.containsKey(MyPagerAdapter.KEY_ITEM) || !args.containsKey(MyPagerAdapter.KEY_MODEL))) {
Log.e("TAG", "incorrect Bundle");
return null;
}
itemId = args.getString(MyPagerAdapter.KEY_ITEM);
mModel = args.getParcelable(MyPagerAdapter.KEY_MODEL);
}
私はonCreateView()
の代わりにFragment.onCreate()
方法でまったく同じものを置くためにいくつかの他の場所で見ることができます。
最後の動作は、ゲッターでを呼び出すことです。
private Model getModel(){
if (getArguments() != null) {
return getArguments().getParcelable(AnnalePagerAdapter.KEY_MODEL);
}
Log.e("Dan", "ItemFragment :: getModel (279): model==null !!");
return null;
}//I can also think about some lazyloading is needed
質問は、以下のとおりです。
- は今(これら3あるいは別)を使用するパターン上のコンセンサスはありますか?
- いくつかのコンテキストがありますか?