2013-10-06 120 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」它應該開始工作。

相關問題