如何使用 class 片段的 instanceof 运算符
How to use instanceof operator for fragment with class
我需要检查当前显示的片段以避免重新启动同一片段class
启动片段使用的代码:
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())
给出编译时错误
[),Expected,Type Expected]
您可以在 Activity 打开片段的地方创建一个静态字符串
public static String currentFragment = "";
然后在每个片段的 onResume 中,您可以像这样将片段的名称赋予该字符串
MainActivity.currentFragment = "currentFrag";
以后随时可以查看
试试这个来检查仅在运行时已知的类型:
mFragmentClass.isInstance(mFragment)
我需要检查当前显示的片段以避免重新启动同一片段class
启动片段使用的代码:
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())
给出编译时错误
[),Expected,Type Expected]
您可以在 Activity 打开片段的地方创建一个静态字符串
public static String currentFragment = "";
然后在每个片段的 onResume 中,您可以像这样将片段的名称赋予该字符串
MainActivity.currentFragment = "currentFrag";
以后随时可以查看
试试这个来检查仅在运行时已知的类型:
mFragmentClass.isInstance(mFragment)