Fragments
을 가지고 놀면서 조각을 채우는 올바른 방법에 대해 궁금해졌습니다.조각 getArgument() 오른쪽 위치
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;
}
을하지만, 내가 인터넷에서 일어나고 볼 수있는 몇 가지 행동을있다 :
사이먼이 말하길
, 내 조각에 인수를 추가 할newInstance()
패턴을 사용합니다.
대부분의 필드에 결과를 onCreateView()
방법 getArguments()
을 넣어 넣어 그것을 보이는 :
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()
방법에 똑같은 일을 넣어 다른 곳에서 볼 수 있습니다.
마지막 동작은 getter에서 을 호출하는 것입니다.
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 또는 다른)?
- 일부 문맥이 있습니까? 나는 하나 이상의 문맥을 사용해야합니까?