无法将Android ClassCastException列表强制转换为Android.app.Fragment

无法将Android ClassCastException列表强制转换为Android.app.Fragment,android,exception,android-fragments,casting,Android,Exception,Android Fragments,Casting,我在这里看到了这个问题,但没有解决我的问题。我的片段扩展了一个名为CommonListFragment的类,该类扩展了片段类。承载片段的My Activity扩展了一个名为CommonActivity的类,该类扩展了FragmentActivity类。一切似乎都正常,那么为什么会出现以下错误 AndroidClassCastException列表不能强制转换为Android.app.Fragment 如上所述,Android正在尝试将我的列表类转换为Android.app.Fragment,而实

我在这里看到了这个问题,但没有解决我的问题。我的片段扩展了一个名为
CommonListFragment
的类,该类扩展了片段类。承载片段的My Activity扩展了一个名为
CommonActivity
的类,该类扩展了
FragmentActivity
类。一切似乎都正常,那么为什么会出现以下错误

Android
ClassCastException
列表不能强制转换为
Android.app.Fragment

如上所述,Android正在尝试将我的列表类转换为
Android.app.Fragment
,而实际上它应该转换为Android.support.v4.app.Fragment。MyList类最终扩展了Fragment类(android.support.v4.app.Fragment)。另外,我的最小和目标SDK是Android 2.2。因此,如果我尝试导入“android.app.Fragment”,则会出现编译器错误。那么,我如何强制Android将我的列表识别为Android.support.v4.app.Fragment?

CommonActivity.java

ListsContainer.java

CommonListFragment

列出\u container.xml

List.java

最新日志

08-06 01:05:00.736: E/AndroidRuntime(15588): Caused by: java.lang.ClassCastException: com.onesix.myApp.Lists cannot be cast to android.app.Fragment
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.app.Fragment.instantiate(Fragment.java:617)
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.app.Fragment.instantiate(Fragment.java:592)
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.app.Activity.onCreateView(Activity.java:4800)
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)

有人有什么想法吗?我已经检查了关于这个主题的所有问题,所以…

问题:

class="com.onesix.myApp.List"
在类
列表中
您正在导入支持库的片段,而不是android的默认片段,这是因为您正在使用
片段活动
意味着您必须使用非支持库中的片段

确保所有片段类特别是
列表类
导入以下内容:

import android.app.Fragment;
编辑:



我认为您还应该提供堆栈trace@mmlooloo:Logcat addddo您仍然有问题,我有一个建议?我的最低SDK是Android 2.2,因此中的Android.app.Fragment类不仅适用于Android.support.v4.app.Fragment@Mike然后确保您正在导入
import android.support.v4.app.Fragment我添加了跟踪和列表class@Mike您的类很好,请尝试将类声明更改为xml,而不是
class=“com.onesix.myApp.List”
使用
android:name
将类声明更改为xml?不知道你的意思。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <fragment
        android:id="@+id/listsFragment"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        class="com.onesix.myApp.Lists" ></fragment>
    <fragment
        android:id="@+id/listFragment"
        android:layout_width="0dp"
        android:layout_weight="2"
        android:layout_height="match_parent"
        class="com.onesix.myApp.List" >
        <!-- Preview: layout=@layout/details -->
    </fragment>

</LinearLayout> 
08-06 00:15:44.228: W/ServerManagedPolicy(7472): Licence retry count (GR) missing, grace period disabled
08-06 00:17:35.207: W/dalvikvm(7472): threadid=1: thread exiting with uncaught exception (group=0x41814970)
08-06 00:17:35.287: E/AndroidRuntime(7472): FATAL EXCEPTION: main
08-06 00:17:35.287: E/AndroidRuntime(7472): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.onesix.myApp/com.onesix.myApp.ListsContainer}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2517)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2574)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.ActivityThread.access$600(ActivityThread.java:162)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1413)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.os.Looper.loop(Looper.java:158)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.ActivityThread.main(ActivityThread.java:5789)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at java.lang.reflect.Method.invokeNative(Native Method)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at java.lang.reflect.Method.invoke(Method.java:525)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at dalvik.system.NativeStart.main(Native Method)
08-06 00:17:35.287: E/AndroidRuntime(7472): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:339)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.Activity.setContentView(Activity.java:1944)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at com.onesix.myApp.ListsContainer.onCreate(ListsContainer.java:18)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.Activity.performCreate(Activity.java:5195)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2473)
08-06 00:17:35.287: E/AndroidRuntime(7472):     ... 11 more
08-06 00:17:35.287: E/AndroidRuntime(7472): Caused by: java.lang.ClassCastException: com.onesix.myApp.Lists cannot be cast to android.app.Fragment
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.Fragment.instantiate(Fragment.java:617)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.Fragment.instantiate(Fragment.java:592)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.app.Activity.onCreateView(Activity.java:4800)
08-06 00:17:35.287: E/AndroidRuntime(7472):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
public class List extends CommonListFragment implements IOnDismissYesNoListener
{

    @Override
    public View  onCreateView(LayoutInflater inflater, ViewGroup container,Bundle  savedInstanceState) 
    {
        //setContentView(R.layout.list);
        View view = inflater.inflate(R.layout.list,container, false);
        //super.onCreate(savedInstanceState);

        return view;
    }

    ...
}
08-06 01:05:00.736: E/AndroidRuntime(15588): Caused by: java.lang.ClassCastException: com.onesix.myApp.Lists cannot be cast to android.app.Fragment
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.app.Fragment.instantiate(Fragment.java:617)
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.app.Fragment.instantiate(Fragment.java:592)
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.app.Activity.onCreateView(Activity.java:4800)
08-06 01:05:00.736: E/AndroidRuntime(15588):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
class="com.onesix.myApp.List"
import android.app.Fragment;
 <fragment
    android:id="@+id/listFragment"
    android:layout_width="0dp"
    android:layout_weight="2"
    android:layout_height="match_parent"
    android:name="com.onesix.myApp.List" >
    <!-- Preview: layout=@layout/details -->
</fragment>