2010-05-13 77 views
0

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

启动活动C本的manifest资源配置文件的样子:

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

我知道我可以做follwoings:从A开始B,然后的B回到A然后启动C

或者让B拥有自己的manifest文件,从而成为独立应用程序,并让C成为此应用程序中的一项活动。

任何建议是值得欢迎的。我对我英语不好的apoligies。

谢谢

+0

我不明白这一点。你试图从B开始Activity C的实际问题是什么?您使用的代码是什么,以及错误/行为是什么? – Rich 2010-05-13 13:16:36

+0

是的,你是对的我想从C启动B.我使用这个: mIntent.setClass(B.this,C.class); startActivity(mIntent); 错误是: ERROR/AndroidRuntime(1804):未捕获的处理程序:线程退出主要由于未捕获的异常 ERROR/AndroidRuntime(1804):了java.lang.RuntimeException:无法启动活动ComponentInfo {test.aapA /测试.aapA.B}:java.lang.NullPointerException ERROR/AndroidRuntime(1804):at test.aapA.B.startC(B.java:40) ERROR/AndroidRuntime(1804):at test.aapA.B.onCreate (B.java:29) 对不起,在我的原始文章中有一些不正确的代码 – mnish 2010-05-13 13:54:28

+0

为什么你想在onCreate中开始一个新的活动? – Pentium10 2010-05-13 13:57:22

回答

1

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

+0

同意,如果我们可以看到你的B.onCreate和B.startC的代码,你可能是一个初始化任务。 – Adam 2010-05-13 17:43:45

+0

谢谢Rich,你说得对。 – mnish 2010-05-15 07:35:23

0

既然你在的onCreate这样做,你怎么叫super.onCreate(试图)开始这一新的活动之前?

+0

是的。但正如我所说的问题不是我开始活动的地方C.谢谢 – mnish 2010-05-13 14:18:12

1

如果在B活动中没有得到它,mIntent会变为空。 所以在B里,你应该初始化mIntent。

可以例如

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