我在我的应用中使用导航抽屉,它应该看起来像[this]:http://godpowerturbo.com/app/uploads/nav.png [a],现在让它看起来像我使用ImageButton
取代{ListView
的设计{1}}加上我没有使用片段,我在ImageButton
点击时打开导航抽屉,但它以空指针异常退出。
我已经在Google和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>
堆栈跟踪
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)
现在我的问题是,当我点击ImageButton
崩溃应用时,它会在Null Pointer Exception
日志到达之前提出dw.openDrawer(Gravity.LEFT);
。
如何访问导航抽屉中的图像按钮以启动不同的现有活动。
先谢谢