2012-07-07 94 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>