如何使用 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)