1

我試圖使用線性佈局將edittext字段添加到導航抽屜,如下面的代碼所示。Android導航抽屜陣列適配器

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@android:color/white" > 

<FrameLayout 
    android:id="@+id/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
</FrameLayout> 

<LinearLayout 
    android:id="@+id/left_drawer" 
    android:layout_width="320dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/EditText01" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:hint="Search" > 
    </EditText> 

    <ListView 
     android:id="@+id/left_drawer_child" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/white" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" /> 
</LinearLayout> 

</android.support.v4.widget.DrawerLayout> 

但是當我試圖填充列表視圖時,它給了我一個空指針異常。下面是我使用的代碼

DrawerLayout mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
LinearLayout mDrawerLinear = (LinearLayout) findViewById(R.id.left_drawer); 
ListView mDrawerListChild = (ListView) findViewById(R.id.left_drawer_child); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.drawer_listview_item, drawerListViewItems); 
mDrawer.closeDrawer(mDrawerLinear); 

錯誤:

Caused by: java.lang.NullPointerException 

我在做什麼錯在這裏?

謝謝!

+0

你可以發佈更多的堆棧跟蹤或者說你得到NullPointerException的地方......可能會幫助你理解這個問題。這個'drawerListViewItems'是什麼,你在哪裏初始化它? – Mikel

+0

看到這個http://hmkcode.com/android-creating-a-navigation-drawer/ –

回答

-1

在將它傳遞給ArrayAdapter時似乎是String[] drawerListViewItemsnull

定義您strings.xml一個字符串數組的內容應該把它傳遞給ArrayAdapter

... 
String[] mPlanetTitles = getResources().getStringArray(R.array.planets_array); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.drawer_listview_item, mPlanetTitles); 
... 

之前顯示

... 
<string-array name="planets_array"> 
     <item>Mercury</item> 
     <item>Venus</item> 
     <item>Earth</item> 
     <item>Mars</item> 
     <item>Jupiter</item> 
     <item>Saturn</item> 
     <item>Uranus</item> 
     <item>Neptune</item> 
</string-array> 
... 

,並填寫您的contentArray drawerListViewItemsstrings.xml此內容取自: http://developer.android.com/training/implementing-navigation/nav-drawer.html#Init

+0

這是問題,感謝您計算出來 – Grant

0

嘗試t他的,

listView.setAdapter(new,ArrayAdapter(this,android.R.layout.simple_list_item_1,getResources()。getStringArray(R.array.drawerItem)));