我的 fragment 中有一个方法,我想从 onResume()
调用它。不幸的是,我的方法要求我向它传递一个 View ,该 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 方法参数是 fragment 接口(interface)的一部分。
最佳答案
您只能从 fragment 中获取 View ,而不能从 Activity 中获取 View 。为此,请在您的 fragment 中 onCreateView
将 Root View 保存为实例变量,例如
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
关于java - 无法在 Fragment 内的 onResume() 方法中检索 View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040867/