在我的(现已弃用)ActionBarActivity
中,我想找出Fragment
可见的内容,以便我可以在正确的方法中调用方法。
我这样做但它说我无法使用我创建的3个自定义Fragment
投射Fragments
:
if (requestCode == 99) {
Fragment f = getFragmentManager().findFragmentById(R.id.main_frag);
if (f instanceof GasFragment) {
// call method
} else if (f instanceof OilFragment) {
// call method
} else if (f instanceof VehicleFragment) {
// call method
}
}
我为每个Fragment
添加了一个标记名称,因此我也在研究“fragment
{tag
”,并且在该方面也没有找到任何内容。
基本上上面的代码在onActivityResult
内。我抓住了一个结果,然后执行上面的代码块。
注意:上面的代码是我完成同样事情的第二种方法但是我没有选择工作。最初,我在Nav抽屉里打开了一个SettingsActivity
并使用了startActivityFromResult()
。我希望将结果捕获到open Fragment
中以调用相关方法。但是,我无法从Fragment
的{{1}}中获取结果,因此我决定在父onActivityResult()
ActionBarActivity
中执行上述代码块。
如果这个计划更有效,我也会接受这个答案。
答案 0 :(得分:3)
我想你的所有碎片都是从android.support.v4.app.Fragment
延伸的?
在这种情况下,您必须使用getSupportFragmentManager().findFragmentById()
,因为getFragmentManager().findFragmentById()
将返回android.app.Fragment
答案 1 :(得分:0)
在你的片段中,你需要覆盖setMenuVisibility
方法并保存传入的布尔值。看看here
现在只需在所有片段中实现一个通用接口,允许活动询问片段是否可见,然后你可以按顺序进行播放。