无法在Fragment中的onResume()方法中检索View

时间:2017-07-11 17:15:58

标签: java android android-fragments android-lifecycle

我的片段中有一个方法,我想从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方法参数是片段接口的一部分。

1 个答案:

答案 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