我一直关注帖子here,以了解有关Android中ActionBar的更多信息。
在我的应用程序中,我试图从每个页面上的操作栏图标导航到HomeActivity .....这就是我现在处理它的方式,但它不会工作并崩溃应用程序。
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case android.R.id.home:
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
LogCat在这里:
03-25 20:02:26.306: E/AndroidRuntime(11346): FATAL EXCEPTION: main
03-25 20:02:26.306: E/AndroidRuntime(11346): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testingapp/com.testingapp.HomeActivity}: java.lang.NullPointerException
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.ActivityThread.access$600(ActivityThread.java:140)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.os.Looper.loop(Looper.java:137)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.ActivityThread.main(ActivityThread.java:4898)
03-25 20:02:26.306: E/AndroidRuntime(11346): at java.lang.reflect.Method.invokeNative(Native Method)
03-25 20:02:26.306: E/AndroidRuntime(11346): at java.lang.reflect.Method.invoke(Method.java:511)
03-25 20:02:26.306: E/AndroidRuntime(11346): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
03-25 20:02:26.306: E/AndroidRuntime(11346): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
03-25 20:02:26.306: E/AndroidRuntime(11346): at dalvik.system.NativeStart.main(Native Method)
03-25 20:02:26.306: E/AndroidRuntime(11346): Caused by: java.lang.NullPointerException
03-25 20:02:26.306: E/AndroidRuntime(11346): at com.testingapp.HomeActivity.onCreate(HomeActivity.java:49)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.Activity.performCreate(Activity.java:5206)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-25 20:02:26.306: E/AndroidRuntime(11346): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
03-25 20:02:26.306: E/AndroidRuntime(11346): ... 11 more
menu.xml文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/menu_settings"/>
</menu>
答案 0 :(得分:0)
检查第49行,您在该行中使用的Watever对象,请使用第49行前的Log.i进行打印。罪魁祸首是空的。
答案 1 :(得分:0)
如果您为菜单项添加菜单ID,则需要使用R.id.home
代替android.R.id.home
来获取菜单ID:
<item
android:id="@+id/home" //<<< here
..../>
或要使用默认ID,您必须将菜单ID声明为android:id="@+id/android:home"