java.lang.ClassCastException切换片段
问题描述:
private void switchFragment(Fragment fragment) {
if (getActivity() == null)
return;
ClassA pm = (ClassA) getActivity();
pm.switchContent(fragment);
}
我想从ClassB switch fragments
,我得到这个异常,当我尝试做。我正在尝试调用Class A
活动的片段。java.lang.ClassCastException切换片段
java.lang.ClassCastException:com.test.ClassB不能转换到 com.test.ClassA
答
使用instanceof
它铸造于ClassA
或ClassB
之前检查getActivity()
类型。尝试,因为:
if (getActivity() instanceof ClassA) {
ClassA pm = (ClassA) getActivity();
pm.switchContent(fragment);
}
else if (getActivity() instanceof ClassB) {
ClassB pm = (ClassB) getActivity();
pm.switchContent(fragment);
}
但是,这将在B级执行我的片段,因为我在这方面... – Kevin 2013-04-04 15:59:04
@Kevin:PLZ检查[这个例子](https://github.com/jfeinstein10/ SlidingMenu/blob/master/example/src/com/slidingmenu/example/fragments/ColorMenuFragment.java)获得更多帮助,因为目前您正尝试将ClassB上下文转换为ClassA – 2013-04-04 16:06:17
我正在使用该示例,但我只是想如果if我在ClassB上下文中......那么当我们在Class B中时,Class A的片段永远不能被称为存在为Class A上下文 – Kevin 2013-04-04 16:09:15