无法在片段内的 onResume() 方法中检索视图

Cannot retrieve View in onResume() method inside Fragment

我的片段中有一个方法,我想从 onResume() 调用它。不幸的是,我的方法要求我向它传递一个视图,该视图在 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 方法参数是片段接口的一部分。

您只能从您的片段中获取视图,而不能从您的 activity 中获取视图。为此,在您的片段 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