私が使う、
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
MyView myView = new MyView(getActivity());
myView.addViews(getViews());
return myView;
}
私はそれpublic void onActivityCreated (Bundle savedInstanceState){}
が後に呼び出されることを知っていますonCreateView();
onCreateView()
カスタム レイアウトを拡張するには、コンテキストが必要です。getActivity()
以前は常に有効なコンテキストを (を使用して) 取得するにはどうすればよいonActivityCreated()
ですか?
考えられる解決策:
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment, container, false); //Contains empty RelativeLayout
return view;
}
//Now that we have activity, create custom views and add it to the empty container
public void onActivityCreated (Bundle savedInstanceState){
RelativeLayout layout = (RelativeLayout)view.findViewById(R.id.layout);
MyView myView = new MyView(getActivity());
layout.add(myView);
}
ただし、この方法ではビュー階層が追加されます。