我的片段中有一个方法,我想从onResume()
调用。不幸的是,我的方法要求我传递一个View,它在onCreateView()
:
的onResume():
@Override
public void onResume() {
super.onResume();
retrieveData(0, false, rootView);
}
onCreateView():
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Set view
View rootView = inflater.inflate(R.layout.tab_fragment_1, container, false);
...
}
有没有办法像onResume()
那样调用我的retrieveData方法,或者我应该创建一个没有rootView参数的新方法(不理想)?
无法将其移动到全局范围,因为inflater方法参数是片段接口的一部分。
答案 0 :(得分:1)
您只能从片段中获取视图,而不是您的活动。为此,请在片段 onCreateView
中执行此操作将根视图保存为
之类的实例变量private View root;
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
root = inflater.inflate(R.layout.fragment_details_buddy, container, false);
... }
并在 onResume
中调用它编辑:从Activity获取数据,将其传递到 Bundle 。 Doc