【发布时间】:2015-01-02 12:56:36
【问题描述】:
我有一个简单的方法,我想将片段名称作为参数传递。 我有几个片段像
1) 添加新日期片段
2) AskFragment
3) 免责声明片段
我有下面的代码可以正常工作
FragmentManager fragmentManager = activity.getSupportFragmentManager();
for (int entry = 0; entry < fragmentManager.getBackStackEntryCount(); entry++) {
Fragment fragment = (Fragment) fragmentManager.getBackStackEntryAt(entry);
if (fragment instanceof AddNewDatesFragment) {
Log.i("TAG", " Expected Fragment Found");
}
}
我想在方法中编写一些代码,我可以调用这样的方法
isExistFragment(AddNewDatesFragment);
isExistFragment(AskFragment);
isExistFragment(DisclaimerFragment);
等等……
我尝试过这样的代码,但在 if 条件下不工作会导致编译时错误。
private boolean isExistFragment(Class<Fragment> expectedFragment) {
FragmentManager fragmentManager = activity.getSupportFragmentManager();
for (int entry = 0; entry < fragmentManager.getBackStackEntryCount(); entry++) {
Fragment fragment = (Fragment) fragmentManager.getBackStackEntryAt(entry);
if (fragment instanceof expectedFragment) {
Log.i("TAG", " Expected Fragment Found");
return true;
}
}
return false;
}
我很好奇实现这样的方法。 谢谢,
【问题讨论】:
-
在流动代码的哪一行出现编译时错误..
-
at if condition as : 此行有多个标记 - 无法将预期片段解析为类型 - 不兼容的条件操作数类型片段和预期片段
-
Fragment Return null : 在这一行中: Fragment fragment = (Fragment) fragmentManager .findFragmentById(fragmentManager.getBackStackEntryAt(entry) .getId());
标签: java android generics android-fragments