Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不带ListView和ActionBar的自定义导航抽屉_Android_Listview_Navigation_Navigation Drawer - Fatal编程技术网

Android 不带ListView和ActionBar的自定义导航抽屉

Android 不带ListView和ActionBar的自定义导航抽屉,android,listview,navigation,navigation-drawer,Android,Listview,Navigation,Navigation Drawer,我在我的应用程序中使用了一个导航抽屉,看起来应该是这样的[a]:[a],现在让它看起来像是我用ImageButton代替ListView的设计,而且我没有使用片段,我在ImageButton单击时打开导航抽屉,但它会以空指针异常退出 我在谷歌和StackOverflow上到处搜索,但我无法修复错误 这是主要的活动 DrawerLayout dw; PercentRelativeLayout rl; ImageButton nav; @Override pr

我在我的应用程序中使用了一个导航抽屉,看起来应该是这样的[a]:[a],现在让它看起来像是我用
ImageButton
代替
ListView
的设计,而且我没有使用片段,我在
ImageButton
单击时打开导航抽屉,但它会以空指针异常退出

我在谷歌和StackOverflow上到处搜索,但我无法修复错误

这是主要的活动

   DrawerLayout dw;
   PercentRelativeLayout rl;
   ImageButton nav;    
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG, "onCreate()");
        Session session = new Session(mCtx);
        Log.e(TAG, "LOG_ID: " + session.getLogId());
        session.putAll();
        rl = (PercentRelativeLayout) findViewById(R.id.nav_left);
        dw = (DrawerLayout) findViewById(R.id.nav_drawer);
        nav = (ImageButton) findViewById(R.id.nav_menu);
        nav.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { //Opening the drawer returns a Null Pointer Exception
                Log.e(TAG, "Nav Menu Click!");
                dw.openDrawer(Gravity.LEFT);
            }
        });
    }
导航抽屉布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/nav_drawer"
    android:background="@drawable/nav"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.percent.PercentRelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/nav_left"
        android:paddingLeft="8dp"
        android:paddingTop="65dp"
        android:layout_gravity="left"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageButton
            android:background="@android:color/transparent"
            android:layout_alignParentLeft="true"
            android:id="@+id/nav_home"
            android:layout_width="95dp"
            android:layout_height="35dp" />

        <android.support.percent.PercentRelativeLayout
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_below="@+id/nav_home"
            android:id="@+id/lay_min"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="5dp"
            android:paddingLeft="10dp">

            <ImageButton
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_catalogue"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_catalogue"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_upcomingevents"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_upcomingevents"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_newlaunch"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_newlaunch"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_turbofailure"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_turbofailure"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_aboutus"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_aboutus"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_enquiry"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_enquiry"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_faq"
                android:layout_width="205dp"
                android:layout_height="30dp" />

            <ImageButton
                android:layout_below="@+id/nav_faq"
                android:background="@android:color/transparent"
                android:layout_alignParentLeft="true"
                android:id="@+id/nav_feedback"
                android:layout_width="205dp"
                android:layout_height="30dp" />

        </android.support.percent.PercentRelativeLayout>

        <View
            android:id="@+id/lazy_view"
            android:layout_below="@id/lay_min"
            android:background="@android:color/transparent"
            android:layout_width="100dp"
            android:layout_height="130dp" />

        <ImageButton
            android:layout_below="@+id/lazy_view"
            android:background="@android:color/transparent"
            android:layout_alignParentLeft="true"
            android:id="@+id/nav_back"
            android:layout_width="75dp"
            android:layout_height="40dp" />

        <ImageButton
            android:layout_below="@+id/nav_back"
            android:background="@android:color/transparent"
            android:layout_alignParentLeft="true"
            android:id="@+id/nav_exit"
            android:layout_width="75dp"
            android:layout_height="40dp" />

    </android.support.percent.PercentRelativeLayout>

</android.support.v4.widget.DrawerLayout>
现在我的问题是,当我点击
ImageButton
使应用程序崩溃时,当它到达
dw.openDrawer(Gravity.LEFT)时,会引发
空指针异常
在日志开始工作之前删除它

以及如何访问导航抽屉中的图像按钮以启动不同的现有活动


提前感谢

dw
为空,因为您从未初始化它。但是在
onStart()
中,
nav
也应该为null。这就是你正在运行的代码吗?你能详细说明一下@MikeM。请发布你的堆栈跟踪。请检查一下@MikeM发布的instack跟踪代码。
01-07 20:30:16.708  22258-22258/com.godpowerturbo.android E/Main﹕ Nav Menu Click!
01-07 20:30:16.708  22258-22258/com.godpowerturbo.android W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x412c0438)
01-07 20:30:16.738  22258-22258/com.godpowerturbo.android E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at com.godpowerturbo.android.Main$1.onClick(Main.java:49)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16987)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4807)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559)
            at dalvik.system.NativeStart.main(Native Method)