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

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

我正在尝试switch fragments从 ClassB 开始,当我尝试这样做时,我遇到了这个异常。我正在尝试调用Class AActivity 的片段。

java.lang.ClassCastException: com.test.ClassB 不能转换为 com.test.ClassA

4

1 回答 1

3

用于在将类型转换为 or之前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);
}
于 2013-04-04T15:56:53.383 回答