我的片段无法转换为 android.support.v4.app.Fragment

Posted

技术标签:

【中文标题】我的片段无法转换为 android.support.v4.app.Fragment【英文标题】:My fragment cannot be cast to android.support.v4.app.Fragment 【发布时间】:2013-03-21 23:12:23 【问题描述】:

我创建了一个非常简单的片段来测试我的应用程序,我收到以下错误消息:

03-31 16:04:39.834: E/androidRuntime(7860): java.lang.RuntimeException: Unable to start activity ComponentInfocom.team3.domore/com.team3.domore.TabActivity: java.lang.ClassCastException: com.team3.domore.SomeFrag cannot be cast to android.support.v4.app.Fragment

我的片段真的很简单……

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class SomeFrag extends Fragment 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
        return inflater.inflate(R.layout.alarm_frag, container, false);
    

    @Override
    public void onStart() 
        super.onStart();
    

请帮忙...我已经为此苦苦挣扎了将近两个小时..

编辑:我很确定我在哪里调用这个片段(一个扩展 FragmentActivity 的活动)正在工作......只是这个片段部分不起作用......

【问题讨论】:

【参考方案1】:

你的SomeFrag 扩展了

android.app.Fragment

如导入中所述。将导入更改为

android.support.v4.app.Fragment

演员会成功。

【讨论】:

奇怪,我知道这篇文章已经过时了。但对于较新版本的 android studio 则相反。我将 android.support.v4.app.Fragment 更改为 android.app.Fragment 我遇到了同样的问题,但按照你说的做确实消除了错误,但我的应用程序说由于某种原因崩溃了.. 为什么android studio默认创建android.app.fragment而不是android.support.v4.app.Fragment【参考方案2】:

尝试更改以下导入

import android.app.Fragment

import android.support.v4.app.Fragment

【讨论】:

以上是关于我的片段无法转换为 android.support.v4.app.Fragment的主要内容,如果未能解决你的问题,请参考以下文章

android.support.v7.view.menu.ActionMenuItemView 无法转换为 android.widget.Button

android.support.v4.app.FragmentTabHost 无法转换为 android.widget.LinearLayout

android.support.v4.app.FragmentManager无法转换为android.app.FragmentManager

无法从 android.app.FragmentManager 转换为 android.support.v4.app.FragmentManager

无法将类型“Android.Support.V4.App.Fragment”转换为“Android.Gms.Maps.MapFragment”

膨胀类 android.support.v7.app.AlertController.RecycleListView 时出错