我有一个片段,它应该从调用它的片段中的Activity执行一个(公共)方法reset()
。
我发现,例如,这个页面: Calling Activity methods from Fragment 另一种方式没有问题:
Input_tap Input_tap = (Input_tap) getFragmentManager().findFragmentById(R.id.input);
Input_tap.reset();
有人知道如何以其他方式做到这一点吗? 并且:方法是否必须公开 - 它是一个“无效”方法?
答案 0 :(得分:1)
Fragment
可以调用getActivity()
来检索托管它的活动。
如果只有一个可能的活动可以托管片段,只需将Activity
转换为正确的类(例如MyActivity
)并在其上调用方法:
((MyActivity)getActivity()).someMethod();
如果可能有多个活动可以托管片段,那么最好通过在所有这些活动上实施通用interface
来实现最佳服务,这样您就可以将getActivity()
的结果转换为该接口:
((MyInterface)getActivity()).someMethod();