2012-07-07 95 views
0

我想要一個菜單​​,當我點擊Android設備上的菜單按鈕時,我已經創建了一個方法和其他東西。這是另一個項目bt我採取了代碼並將其改編成我的新項目!早些時候它工作得很好,現在活動部隊關閉了!我無法找到錯誤!請幫幫我!在菜單按鈕點擊時創建菜單的錯誤android

方法---->

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    // TODO Auto-generated method stub 
    switch (item.getItemId()) { 
    case R.id.about: 
     Intent contextmenu = new Intent("com.sliit.droidman.main.About"); 
     startActivity(contextmenu); 
     break; 
    case R.id.exit: 
     finish(); 
     break; 
    } 
    return false; 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // TODO Auto-generated method stub 
    MenuInflater droidmenu = getMenuInflater(); 
    droidmenu.inflate(R.menu.contextmenu, menu); 
    return true; 
} 

的logcat的日誌,從那裏錯誤occures!

07-05 17:11:43.419: W/dalvikvm(4546): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 
07-05 17:11:43.448: E/AndroidRuntime(4546): FATAL EXCEPTION: main 
07-05 17:11:43.448: E/AndroidRuntime(4546): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.sliit.droidman.main.About } 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.Activity.startActivityForResult(Activity.java:3351) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.Activity.startActivityForResult(Activity.java:3312) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.Activity.startActivity(Activity.java:3522) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.Activity.startActivity(Activity.java:3490) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.sliit.droidman.main.MainActivity.onMenuItemSelected(MainActivity.java:130) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:958) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:166) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.widget.AdapterView.performItemClick(AdapterView.java:298) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.widget.AbsListView.performItemClick(AbsListView.java:1086) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at  android.widget.AbsListView$PerformClick.run(AbsListView.java:2855) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.widget.AbsListView$1.run(AbsListView.java:3529) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.os.Handler.handleCallback(Handler.java:615) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.os.Looper.loop(Looper.java:137) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at android.app.ActivityThread.main(ActivityThread.java:4745) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at java.lang.reflect.Method.invokeNative(Native Method) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at java.lang.reflect.Method.invoke(Method.java:511) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
07-05 17:11:43.448: E/AndroidRuntime(4546): at dalvik.system.NativeStart.main(Native Method) 
+0

確保您已經添加'<類別的Android:名稱=「android.intent.category.DEFAULT」/>'intent過濾器'關於'在manifest.cml中的活動 – 2012-07-07 15:49:40

回答

1

要啓動「關於」 -activity,只需使用

startActivity(new Intent(this, About.class));

的logcat的錯誤意味着無論您的活動com.sliit.droidman.main.About不存在,是在另一個項目中,或在清單中沒有定義。

+0

是的工作!但我無法理解的是爲什麼我的方法不起作用。我創建了一個新的意圖,並將其解析爲正確的方法!順便說一句,我已經在manifest文件中聲明瞭關於intent的意思! :)現在的問題是,我有關於佈局的文本視圖,並且我已經爲它指定了一個字符串值! BT我dsnt顯示它應該!這件事情是瘋狂的! O.o – 2012-07-07 15:52:04

+0

我很高興它的工作原理:-)!我不確定爲什麼你的方法不起作用,你將不得不發佈更多的代碼(尤其是清單文件)。至於你的TextView/String問題,請創建一個新問題,很難解決這個問題之間的評論:-) – Nick 2012-07-07 16:55:31

0

您需要在您的清單文件中定義的活動,看看你的清單,並期待在先前定義的活動,並創建一個新的,讓你需要他們的變化。

0

嘗試爲:

Intent intent = new Intent("com.sliit.droidman.main.About"); 
    final ComponentName cn = new 
    ComponentName("com.sliit.droidman.main","com.sliit.droidman.main.About"); 
    intent.setComponent(cn); 
    startActivity(intent); 


,並確保你已經添加 android.intent.action.DEFAULT意向濾波器關於爲:

<activity android:name=".About" 
      android:label="@string/app_name"> 
</intent-filter> 
    <intent-filter> 
      <action android:name="com.sliit.droidman.main.About" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity>