2013-10-06 50 views
0

我正在尝试使用android支持库创建一个抽屉导航到姜饼项目我已经成功安装了支持库,并试图将字符串数组传递到抽屉列表中,但是我得到数组中的空指针异常并不确定原因。有谁知道如何在老版本的Android中正确实现抽屉布局?Android从支持库中添加drawerLayout

继承人到目前为止,我做了什么不确定是否正确的方式来做到这一点。

mainpage.java

String[] mPlanetTitles = { 
       "Abundance", 
       "Anxiety", 
       "Bruxism", 
       "Discipline", 
       "Drug Addiction" 
     }; 

     //mPlanetTitles = getResources().getStringArray(R.array.menu_array); 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.left_drawer); 

     // Set the adapter for the list view 
     mDrawerList.setAdapter(new ArrayAdapter<String>(this, 
       R.layout.drawer_list_item, android.R.id.text1, mPlanetTitles)); 


    } 

drawer_list_item

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="18dp" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

</RelativeLayout> 

错误日志

10-06 11:19:45.869: E/AndroidRuntime(1660): FATAL EXCEPTION: main 
10-06 11:19:45.869: E/AndroidRuntime(1660): java.lang.NullPointerException 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:353) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.AbsListView.obtainView(AbsListView.java:1536) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.ListView.makeAndAddView(ListView.java:1793) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.ListView.fillDown(ListView.java:718) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.ListView.fillFromTop(ListView.java:775) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.ListView.layoutChildren(ListView.java:1646) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.AbsListView.onLayout(AbsListView.java:1366) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.view.View.layout(View.java:7175) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:678) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.view.View.layout(View.java:7175) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.view.View.layout(View.java:7175) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.view.View.layout(View.java:7175) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1146) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1866) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.os.Looper.loop(Looper.java:123) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at android.app.ActivityThread.main(ActivityThread.java:3687) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at java.lang.reflect.Method.invoke(Method.java:507) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
10-06 11:19:45.869: E/AndroidRuntime(1660):  at dalvik.system.NativeStart.main(Native Method) 

回答

2

在你的java文件NavigationDrawer适配器你引用android.R.id.text1但你的.xml文件中有“@ + id/textView1”因此它会引发空指针异常。

将.xml文件的TextView ID更改为android:id =“@ android:id/text1”它应该开始工作。

相关问题