【问题标题】:android startactivity安卓启动活动
【发布时间】:2010-05-13 12:59:41
【问题描述】:

我有一个包含 3 个活动 A、B 和 C 的应用程序。活动 A 是我启动应用程序时启动的活动。从 A 我开始 B 使用mIntent.setClass(A.this, B.class);,然后startActivity(mIntent); 这很顺利。问题是当我想从 B 开始活动 C 时。

清单文件如下所示:

    <activity android:name=".B"/>
    <activity android:name=".C"/>

我知道我可以做到以下几点:从 A 开始 B,然后从 B 回到 A,然后从 C 开始

或者让 B 有自己的清单文件,因此是一个独立的应用程序,让 C 成为这个应用程序中的一个活动。

欢迎提出任何建议。我为我糟糕的英语道歉。

谢谢

【问题讨论】:

  • 我不明白。您尝试从 B 开始活动 C 的实际问题是什么?您使用什么代码来执行此操作,错误/行为是什么?
  • 是的,你是对的,我想从 C 开始 B。我使用这个:mIntent.setClass(B.this, C.class);开始活动(mIntent);错误是:ERROR/AndroidRuntime(1804): Uncaught handler: thread main exiting due to unaught exception ERROR/AndroidRuntime(1804): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.aapA/test.aapA.B} : java.lang.NullPointerException 错误/AndroidRuntime(1804): 在 test.aapA.B.startC(B.java:40) 错误/AndroidRuntime(1804): 在 test.aapA.B.onCreate(B.java:29)抱歉,我的原始帖子中有一些不正确的代码
  • 为什么要在onCreate中开始一个新的activity?
  • 问题不在于我想在哪里开始一项新活动。尝试通过按下按钮启动活动 C 会发生相同的问题。
  • 贴出你的代码和对应的logcat

标签: android android-activity


【解决方案1】:

您在 cmets 中发布的错误是 NullPointerException,这意味着您正在调用方法(或尝试访问其属性等)的某些变量尚未实例化。您是否有可能在调用 setClass 之前声明了 mIntent 但没有将其设置为新的 Intent?贴出B类的代码,应该很容易理解(通常是NullPointerExceptions)。

【讨论】:

  • 同意,如果我们能看到您的 B.onCreate 和 B.startC 的代码,您可能正在执行初始化任务。
【解决方案2】:

如果您在 B 活动中没有得到它,mIntent 将变为 null。 所以在 B 内部,你应该初始化 mIntent。

你可以这样做

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

【讨论】:

    【解决方案3】:

    由于您在 onCreate 中执行此操作,您是否在(尝试)启动此新 Activity 之前调用了 super.onCreate?

    【讨论】:

    • 是的。但正如我所说,问题不在于我从哪里开始活动 C。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多