关于切换片段的java.lang.ClassCastException

时间:2013-04-04 15:49:53

标签: android

private void switchFragment(Fragment fragment) {
    if (getActivity() == null)
        return;

    ClassA pm = (ClassA) getActivity();
    pm.switchContent(fragment);
}

我正在尝试从ClassB switch fragments,当我尝试时,我得到了这个例外。我试图调用Class A活动的片段。

  

java.lang.ClassCastException:com.test.ClassB无法强制转换为   com.test.ClassA

1 个答案:

答案 0 :(得分:3)

使用instanceof检查getActivity()类型,然后再将其转换为ClassAClassB。试试看:

if (getActivity() instanceof ClassA) {
  ClassA pm = (ClassA) getActivity();
  pm.switchContent(fragment);
 } 
 else if (getActivity() instanceof ClassB) {
  ClassB pm = (ClassB) getActivity();
  pm.switchContent(fragment);
}