2010-05-13 76 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));