我有一个文件fragment_item_attachment.xml,其中有一个<RelativeLayout>和一个相应的ItemAttachmentFragment.java,但是我如何找出相应的活动呢?这些活动似乎也都没有相同的名称。

最佳答案

这取决于哪个活动开始片段。

为了添加片段,您可能需要一些类似于以下内容的代码:

// Here we have the fragment, but it isn't bound to an activity.
Fragment fragment = new MyFragment();

// Here the fragment will be bound to the activity.
FragmentTransaction transaction = getFragmentManager()
        .beginTransaction()
        .replace(R.id.container, fragment)
        .commit();


将片段绑定到活动后,片段的getActivity()方法将返回活动。

如果未绑定到活动,则getActivity()将返回null。

如果您是从MainActivity中启动片段,并且想要访问该活动中的方法,则可以在片段中编写以下内容:

((MainActivity) getActivity()).myCustomMethod();


为了编写更安全的代码,如果片段以不同的方式使用,请避免可能的NullPointerException或ClassCastException:

if (getActivity() != null && getActivity() instanceof MainActivity) {
    ((MainActivity) getActivity()).myCustomMethod();
}

关于android - 我如何确定是什么 Activity 导致了 fragment ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41793925/

10-10 06:10