Java 如何对带有类的片段使用instanceof运算符
我需要检查当前显示的片段,以避免重新启动相同的片段类 要启动片段,请使用以下代码:Java 如何对带有类的片段使用instanceof运算符,java,android,android-fragments,instanceof,Java,Android,Android Fragments,Instanceof,我需要检查当前显示的片段,以避免重新启动相同的片段类 要启动片段,请使用以下代码: private Class mFragmentClass; mFragmentClass = InfoFragment.class; if (null != mFragmentClass) { try { mFragment = (Fragment) mFragmentClass.newInstance(); FragmentManager fragmentManager = getS
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())
给出的是编译时错误
[),应为,类型应为]
您可以在打开片段的活动中创建静态字符串
public static String currentFragment = "";
然后在Resume上的每个片段中,您可以像下面这样为该字符串指定片段的名称
MainActivity.currentFragment = "currentFrag";
然后,您可以随时检查它。尝试以下方法检查仅在运行时已知的类型:
mFragmentClass.isInstance(mFragment)
java instanceof运算符用于测试对象是否为指定类型的实例。它需要一个类。可能重复:这是我所期待的。谢谢你。这是一个天才的方法!谢谢你。