1

次のコードに示すように、線形レイアウトを使用して edittext フィールドをナビゲーション ドロワーに追加しようとしました。

<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>

しかし、リスト ビューにデータを入力しようとすると、null ポインター例外が発生します。これが私が使用したコードです

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

ここで何が間違っていますか?

ありがとうございました!

4

2 に答える 2

0

これを試して、

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

于 2016-04-01T07:12:50.560 に答える
-1

に渡すときString[] drawerListViewItemsはあなたのようです。nullArrayAdapter

strings.xml表示するコンテンツを含む文字列配列で定義します

...
<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> 
...

に渡す前に、 contentArraydrawerListViewItemsからこのコンテンツを入力します。strings.xmlArrayAdapter

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

サンプル: http://developer.android.com/training/implementing-navigation/nav-drawer.html#Init

于 2013-10-29T09:28:23.637 に答える