我有一个文件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/