2013-03-26 59 views
-1

我一直在關注帖子here瞭解更多關於Android中的ActionBar。選擇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> 
+1

plz還添加日誌與問題獲得更多幫助 – 2013-03-26 01:56:14

+0

更新了問題用logCat – Keeano 2013-03-26 02:03:36

+0

HomeActivity中的行號是49哪裏? – 2013-03-26 02:04:41

回答

0

檢查行數49,watever您使用的是該行的對象,請前行打印使用Log.i數字49.罪魁禍首是無效的。

+0

當我在49處放置一個斷點時,我不會得到一個空值。 – Keeano 2013-03-26 02:27:07

+0

當你回來的時候你會得到NULL,那麼這意味着你正在使用被破壞的東西,如果你可以很難找到像這 – 2013-03-26 02:56:16

0

,你將需要使用R.id.home而不是android.R.id.home拿到菜單ID,如果你有添加菜單ID爲菜單項爲:

<item 
    android:id="@+id/home" //<<< here 
    ..../> 

,或者使用默認的ID,必須聲明菜單ID爲android:id="@+id/android:home"

+0

im試圖訪問單擊事件的ic_launcher圖像時單擊導航回到我的HomeActivity.class .....我該怎麼做? – Keeano 2013-03-26 02:30:41

+0

@KeeanoMartin:你現在得到了什麼問題,因爲你使用錯誤的ID來訪問主菜單。如果你仍然有問題,然後與我的風格xml更新與問題 – 2013-03-26 02:34:42

+0

共享你的菜單XML文件。 – Keeano 2013-03-26 02:39:31