我在關閉Android中抽屜佈局時遇到問題。每次我調用drawer.closeDrawers()或drawer.closeDrawers(list)時,我都遇到一個空指針異常。Android - 抽屜佈局 - 關閉抽屜導致空指針異常
這是我的MainActivity.java代碼。
// Sliding drawer menu
private DrawerLayout drawer;
// Drawer list
private ListView drawerList;
...
...
...
// List of menu options
final String[] menu = new String[]{
"Item 1",
"Item 2",
"Item 3",
"Item 4",
"Item 5"
};
// Initialize the drawer menu layout
drawer = (DrawerLayout) findViewById(R.layout.activity_main);
// Initialize the drawer list
drawerList = (ListView) findViewById(R.id.list_slidermenu);
// Drawer list adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menu);
// Set the adapter for the list
drawerList.setAdapter(adapter);
// Set the background selector for each menu item
drawerList.setSelector(android.R.color.holo_blue_dark);
// On click listener for the list
drawerList.setOnItemClickListener(new OnItemClickListener() {
// When a menu item is clicked
public void onItemClick(AdapterView<?> e, View v, int position, long id) {
// Close the drawer
drawer.closeDrawers(); // Causes a Null Pointer Exception
}
});
這是我的activity_main.xml代碼。
<!-- Left sided swipe in Drawer layout -->
<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" >
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Google maps fragment -->
<fragment
android:id="@+id/google_map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</fragment>
</FrameLayout>
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#F0F0F0"/>
</android.support.v4.widget.DrawerLayout>
這是我的錯誤堆棧跟蹤。
10-30 20:29:21.956: E/AndroidRuntime(1959): FATAL EXCEPTION: main
10-30 20:29:21.956: E/AndroidRuntime(1959): Process: com.dziz.umbcparkingpal, PID: 1959
10-30 20:29:21.956: E/AndroidRuntime(1959): java.lang.NullPointerException
10-30 20:29:21.956: E/AndroidRuntime(1959): at com.dziz.umbcparkingpal.MainActivity$1.onItemClick(MainActivity.java:108)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.widget.AdapterView.performItemClick(AdapterView.java:301)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2911)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.widget.AbsListView$3.run(AbsListView.java:3645)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.os.Handler.handleCallback(Handler.java:733)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.os.Handler.dispatchMessage(Handler.java:95)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.os.Looper.loop(Looper.java:136)
10-30 20:29:21.956: E/AndroidRuntime(1959): at android.app.ActivityThread.main(ActivityThread.java:5097)
10-30 20:29:21.956: E/AndroidRuntime(1959): at java.lang.reflect.Method.invokeNative(Native Method)
10-30 20:29:21.956: E/AndroidRuntime(1959): at java.lang.reflect.Method.invoke(Method.java:515)
10-30 20:29:21.956: E/AndroidRuntime(1959): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
10-30 20:29:21.956: E/AndroidRuntime(1959): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
10-30 20:29:21.956: E/AndroidRuntime(1959): at dalvik.system.NativeStart.main(Native Method)
誰能告訴我我在做什麼導致這個空指針異常嗎?
這沒有奏效。 Android試圖誇大視圖時遇到錯誤。另外,你對於我應該用膨脹視圖做的事情不是很具體,它只是掛在那裏沒用。 – 2014-10-31 00:34:37
「視圖」是你的「抽屜」 – habitats 2014-10-31 00:35:24
是的,我試圖使用演員初始化我的DrawerLayout與膨脹的視圖。它沒有幫助,它只在開始時崩潰了程序。 – 2014-10-31 00:36:12