Java 滑动面板布局和片段$InstanceionException

Java 滑动面板布局和片段$InstanceionException,java,android,xml,Java,Android,Xml,我正在尝试在我的应用程序中实现SlidingPaneLayout。根据各种教程,我编写了这段代码。在活动单元主布局中 <android.support.v4.widget.SlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/sliding_pane_layout" android:layout_width="match_parent"

我正在尝试在我的应用程序中实现SlidingPaneLayout。根据各种教程,我编写了这段代码。在活动单元主布局中

<android.support.v4.widget.SlidingPaneLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/sliding_pane_layout"
   android:layout_width="match_parent"
   android:layout_height="match_parent">

    <fragment
       android:id="@+id/list"
       class="com.mypackage.name.FirstFragment"
       android:layout_width="280dp"
       android:layout_height="match_parent"
       android:layout_gravity="left"></fragment>

    <fragment
       android:id="@+id/content"
       class="com.mypackage.name.SecondFragment"
       android:layout_width="450dp"
       android:layout_height="match_parent"
       android:layout_weight="1"
       android:paddingLeft="16dp"
       android:paddingRight="16dp"></fragment>

</android.support.v4.widget.SlidingPaneLayout>
第一片段类

public class FirstFragment extends Fragment {

    ArrayAdapter<String> adapter;
    String[] items;
    ListView list;
    View view;

    public View onCreateView(LayoutInflater inflater, Bundle savedIstanceState, ViewGroup container) {
        view = inflater.inflate(R.layout.lista_fragment, container, false);
        list = (ListView)view.findViewById(R.id.listView);
        items = new String[] {"EXAMPLE", "EXAMPLE", "EXAMPLE"};
        adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
        list.setAdapter(adapter);

        return view;
    }

}

我也试图清理项目,但我有同样的错误。问题出在哪里?

只需在XML布局中编写
Fragment
而不是
Fragment
。XML区分大小写。日志中的部分
#7:Error exploding class fragment
显示了这一点

如果要使用
FirstFragment
类,则在XML文件中声明元素时必须写入全名,包括包名:

<com.mypackage.name.FirstFragment
    ... >
    ...
</com.mypackage.name.FirstFragment>

...

lista
adattore
?很抱歉,我将变量名称翻译成了英语,我忘记了在您的代码示例中导入的lineAdd。您正在扩展一个活动,但我打赌您正在扩展v4 fragment.ClassNotFoundException。找不到类“android.view.Fragment”。是否要使用android的base
Fragment
类,支持v4的one或您的
FirstFragment
?我想在我的应用程序中包括SlidingPaneLayout。在本教程中,有一个片段xml标记
public class MainActivity extends Activity {

    SlidingPaneLayout slidingLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        slidingLayout = (SlidingPaneLayout)findViewById(R.id.sliding_pane_layout);
        slidingLayout.setPanelSlideListener(new SlidingPaneLayoutListener());
    }

    private class SlidingPaneLayoutListener implements SlidingPaneLayout.PanelSlideListener {

        @Override
        public void onPanelClosed(View view) {
            // TODO Auto-generated method stub
            getFragmentManager().findFragmentById(R.id.list).setHasOptionsMenu(false);
            getFragmentManager().findFragmentById(R.id.content).setHasOptionsMenu(true);
        }

        @Override
        public void onPanelOpened(View view) {
            // TODO Auto-generated method stub
            getFragmentManager().findFragmentById(R.id.list).setHasOptionsMenu(false);
            getFragmentManager().findFragmentById(R.id.content).setHasOptionsMenu(true);
        }

        @Override
        public void onPanelSlide(View view, float arg1) {
            // TODO Auto-generated method stub

        }

    }

}
public class FirstFragment extends Fragment {

    ArrayAdapter<String> adapter;
    String[] items;
    ListView list;
    View view;

    public View onCreateView(LayoutInflater inflater, Bundle savedIstanceState, ViewGroup container) {
        view = inflater.inflate(R.layout.lista_fragment, container, false);
        list = (ListView)view.findViewById(R.id.listView);
        items = new String[] {"EXAMPLE", "EXAMPLE", "EXAMPLE"};
        adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
        list.setAdapter(adapter);

        return view;
    }

}
03-07 14:42:49.501: E/AndroidRuntime(28780): FATAL EXCEPTION: main
03-07 14:42:49.501: E/AndroidRuntime(28780): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage.name/com.mypackage.name.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.ActivityThread.access$800(ActivityThread.java:145)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.os.Looper.loop(Looper.java:136)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.ActivityThread.main(ActivityThread.java:5081)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at java.lang.reflect.Method.invokeNative(Native Method)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at java.lang.reflect.Method.invoke(Method.java:515)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at dalvik.system.NativeStart.main(Native Method)
03-07 14:42:49.501: E/AndroidRuntime(28780): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:343)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.Activity.setContentView(Activity.java:1929)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at com.mypackage.name.MainActivity.onCreate(MainActivity.java:15)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.Activity.performCreate(Activity.java:5231)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
03-07 14:42:49.501: E/AndroidRuntime(28780):    ... 11 more
03-07 14:42:49.501: E/AndroidRuntime(28780): Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.mypackage.name.FirstFragment that is not a Fragment
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.Fragment.instantiate(Fragment.java:585)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.Fragment.instantiate(Fragment.java:561)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.app.Activity.onCreateView(Activity.java:4778)
03-07 14:42:49.501: E/AndroidRuntime(28780):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
03-07 14:42:49.501: E/AndroidRuntime(28780):    ... 21 more
03-07 14:42:49.501: E/AndroidRuntime(28780): Caused by: java.lang.ClassCastException
03-07 14:42:49.501: E/AndroidRuntime(28780):    ... 25 more
<com.mypackage.name.FirstFragment
    ... >
    ...
</com.mypackage.name.FirstFragment>