0

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

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

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

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

4

1 回答 1

1

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

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

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

如果可能有多个活动可以托管片段,则最好通过interface在所有这些活动上实现一个公共来为您提供最佳服务,因此您可以将getActivity()' 的结果转换为该接口:

((MyInterface)getActivity()).someMethod();
于 2012-09-13T20:47:20.647 回答