从Fragment执行公共活动方法

时间:2012-09-13 20:45:21

标签: android methods android-fragments android-activity

我有一个片段,它应该从调用它的片段中的Activity执行一个(公共)方法reset()

我发现,例如,这个页面: Calling Activity methods from Fragment 另一种方式没有问题:

Input_tap Input_tap = (Input_tap) getFragmentManager().findFragmentById(R.id.input);
Input_tap.reset();

有人知道如何以其他方式做到这一点吗? 并且:方法是否必须公开 - 它是一个“无效”方法?

1 个答案:

答案 0 :(得分:1)

Fragment可以调用getActivity()来检索托管它的活动。

如果只有一个可能的活动可以托管片段,只需将Activity转换为正确的类(例如MyActivity)并在其上调用方法:

((MyActivity)getActivity()).someMethod();

如果可能有多个活动可以托管片段,那么最好通过在所有这些活动上实施通用interface来实现最佳服务,这样您就可以将getActivity()的结果转换为该接口:

((MyInterface)getActivity()).someMethod();