【问题标题】:New folder in java for android用于android的java中的新文件夹
【发布时间】:2013-01-19 09:33:59
【问题描述】:

我如何创建一个新的活动?

我已经尝试过这段代码,但是当我启动它时我的应用程序崩溃了...

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.newfolder:
    startActivity(new Intent(this, Newfolder.class));
    return true;
    default:
    return super.onOptionsItemSelected(item);
    }
}

LogCat 错误:

02-04 18:48:07.987: E/AndroidRuntime(839): FATAL EXCEPTION: main
02-04 18:48:07.987: E/AndroidRuntime(839): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.androidexplorer/com.example.androidexplorer.Newfolder}; have you declared this activity in your AndroidManifest.xml?
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.app.Activity.startActivityForResult(Activity.java:3190)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.app.Activity.startActivity(Activity.java:3297)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.example.androidexplorer.MainActivity.onMenuItemSelected(MainActivity.java:105)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:950)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:163)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.widget.AdapterView.performItemClick(AdapterView.java:292)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.widget.AbsListView.performItemClick(AbsListView.java:1058)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.widget.AbsListView$1.run(AbsListView.java:3168)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.os.Handler.handleCallback(Handler.java:605)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.os.Handler.dispatchMessage(Handler.java:92)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.os.Looper.loop(Looper.java:137)
02-04 18:48:07.987: E/AndroidRuntime(839):      at android.app.ActivityThread.main(ActivityThread.java:4424)
02-04 18:48:07.987: E/AndroidRuntime(839):      at java.lang.reflect.Method.invokeNative(Native Method)
02-04 18:48:07.987: E/AndroidRuntime(839):      at java.lang.reflect.Method.invoke(Method.java:511)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-04 18:48:07.987: E/AndroidRuntime(839):      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-04 18:48:07.987: E/AndroidRuntime(839):      at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 崩溃 => 发布堆栈跟踪
  • 请点击“edit”,然后在您的问题中剪切并粘贴 LogCat 错误。 (DropBox 链接需要我们登录...)
  • 这是我的代码 newfolder.java pastebin.com/L6vJ4i2u
  • 来自您的 LogCat:“您是否在 AndroidManifest.xml 中声明了此活动?” This question 会帮助你。

标签: android explorer


【解决方案1】:

这里欢迎使用 Logcat...但我猜你忘记在清单中添加 newFolder 活动了。

【讨论】:

【解决方案2】:

试试这个,首先创建菜单文件夹,然后编写 menu.xml 文件。您必须为每个项目提供 id。

menu.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/newfolder"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/un_subscribe">
</item>

在您的 java 代码中编写此代码。

  @Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    // TODO Auto-generated method stub
    super.onMenuItemSelected(featureId, item);
    switch (item.getItemId()) {
    case R.id.newfolder:
         startActivity(new Intent(this, Newfolder.class));

    default:
        return super.onOptionsItemSelected(item);
    }

}

【讨论】:

【解决方案3】:

您的Newfolder 是否扩展了活动?
您是否在 AndroidManifest.xml 中声明了Newfolder 活动?(查看here 怎么做)

发布您的堆栈跟踪!

【讨论】:

  • 我不确定这如何成为答案。如果您想向作者提出问题,请使用评论。充其量这些都是疯狂的猜测。
  • 通过问他这 2 个问题,我描述了最可能出现的问题。
  • 答案呢?很高兴在答案部分发布答案。 (另外还有很多可能的问题……)
【解决方案4】:

android 中最常见的错误是使用this 关键字。 startActivity(new Intent(this, Newfolder.class)); 在这一行我认为你应该使用startActivity(new Intent(YourActivityName.this, Newfolder.class)); 因为this 这里很可能是一个事件监听器对象。

【讨论】:

  • 对于这种情况可能你是对的,但如果'onOptionsItemSelected'的所有者是'Context'继承对象,情况就是这样。
  • 这是我的日志....dl-web.dropbox.com/get/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 2012-04-21
  • 2016-12-29
  • 2019-09-15
  • 2023-04-05
  • 1970-01-01
相关资源
最近更新 更多