我在Android Fragments Dev Guide中看到,“活动可以通过使用findFragmentById()
或findFragmentByTag()
从FragmentManager获取对片段的引用来调用片段中的方法”。
下面的示例显示如何获取片段引用,但不显示如何调用片段中的特定方法。
有没有人能举例说明如何做到这一点?我想从父活动中调用片段中的特定方法。谢谢。
发布于 2012-06-06 02:51:49
没有完全理解这个问题,因为它太简单了:
ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.<specific_function_name>();
发布于 2014-06-12 07:26:55
如果你正在使用一个支持库,你会想要这样做:
FragmentManager manager = getSupportFragmentManager();
Fragment fragment = manager.findFragmentById(R.id.my_fragment);
fragment.myMethod();
发布于 2017-03-06 08:32:09
我认为最好的方法是在调用fragment中的方法之前检查是否添加了fragment。这样做可以避免空异常。
ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
if(fragment.isAdded()){
fragment.<specific_function_name>();
}
https://stackoverflow.com/questions/10903077
复制相似问题