我需要检查当前显示的片段以避免重新启动相同的片段类
启动片段使用代码:
private Class mFragmentClass;
mFragmentClass = InfoFragment.class;
if (null != mFragmentClass) {
try {
mFragment = (Fragment) mFragmentClass.newInstance();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_navigation_menu, mFragment).commit();
} catch (InstantiationException exception) {
exception.printStackTrace();
} catch (IllegalAccessException exception) {
exception.printStackTrace();
}
}
需要检查当前显示的片段:
if(mFragment instanceof (Fragment)mFragmentClass.newInstance())
给出了编译时错误
[),预期,预期类型]
答案 0 :(得分:2)
尝试检查仅在运行时已知的类型:
mFragmentClass.isInstance(mFragment)
答案 1 :(得分:0)
您可以在Activity中打开片段
的静态字符串public static String currentFragment = "";
然后在onResume的每个片段中,您可以像这样
将片段的名称赋予该字符串MainActivity.currentFragment = "currentFrag";
然后你可以随时检查它。
答案 2 :(得分:0)
你可以这样做:if (mFragment instanceof mFragmentClass)