我有一个文件fragment_item_attachment.xml
,其中包含<RelativeLayout>
和相应的ItemAttachmentFragment.java
,但如何确定相应的活动是什么?这些活动似乎都有不同的名称。
答案 0 :(得分:1)
取决于哪个Activity启动片段。
为了添加片段,可能会有类似的代码:
// 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();
}