我已經在mainactivity中定義了一個函數,現在我想用我app.App中的另一個類訪問我通過使用該對象創建了一個mainactivity對象,我稱之爲函數。它沒有顯示任何錯誤,但它沒有執行每個當我嘗試執行應用程序崩潰? 任何解決方案我可以在其他課程中創建活動的對象嗎?
2
A
回答
31
活動A應該有一個可變
static ActivityA activityA;
在的onCreate狀態:
activityA = this;
並添加此方法:
public static ActivityA getInstance(){
return activityA;
}
在活動B,調用
ActivityA.getInstance().myFunction(); //call myFunction using activityA
13
你不能只是創建活動的對象使用:
MyActivity activity = new MyActivity();
,你會與正常的Java類
。 Android中的所有活動必須經歷活動生命週期,以便它們具有附加的有效上下文。
通過將Activity作爲普通的Java類處理,您最終會得到一個null上下文。由於Activity中的大多數方法都是在Context上調用的,所以會得到一個空指針異常,這就是爲什麼你的應用程序崩潰的原因。
而是將所有需要從其他類中調用的方法移到一個Utility類中,該類在其構造函數中接受有效的上下文,然後在方法中使用該上下文來完成工作。
相關問題
- 1. 在其他活動中創建的對象在主要活動中不可見
- 2. 我可以在JavaScript中創建動態對象名稱嗎?
- 3. 我可以從其他課程獲得NSString嗎?
- 4. AS3補間動態創建的對象以及其他對象
- 5. 我可以避免在這裏創建課程嗎?
- 6. 我可以根據其他變量動態創建變量嗎?
- 7. 我們可以創建名稱爲「class」的課程嗎?
- 8. 我可以在Queue中創建ArrayList的任何對象嗎?
- 9. 我可以在JavaScript中創建自己的數組對象嗎?
- 10. 線程完成後可以讓其他課程知道嗎?
- 11. 是否可以訪問其他地方的活動對象?
- 12. Libgdx:創建其他對象的對象
- 13. 在其他活動的活動中創建快捷方式
- 14. 創建與其他對象
- 15. Visual Studio - 可以創建對其他語言的支持嗎?
- 16. 我可以在SystemVerilog中創建一個const對象嗎?
- 17. 我可以在同一個類中創建對象嗎?
- 18. 我可以在對象中創建一個方法嗎?
- 19. 我可以在Flask中創建更多會話對象嗎?
- 20. 我可以在課堂中儲存一些方法並將它們用於其他活動嗎?
- 21. 我可以在我的應用程序的其他活動中使用sharedpreference
- 22. 使用wait/notify創建活動課程
- 23. 我可以使用ContextBoundObject創建線程安全對象嗎?
- 24. 我可以通過編程創建plist嗎?使用json對象
- 25. Anymote協議連接可以在我的遠程應用中的其他活動中存活嗎?
- 26. 在其他活動中重新創建活動?
- 27. 我可以在javascript中調用由相同構造函數創建的其他對象的方法嗎?
- 28. Xamarin Android:我可以不創建我的MainActivity的新對象嗎?
- 29. 我可以刪除在另一個進程中創建的HBITMAP對象嗎?
- 30. FLEX:Actionscript:我可以從ArrayColletion中創建新的對象嗎?
你剛剛通過活動類的上下文.... – duggu 2013-02-19 11:13:22
你需要通過上下文,你可以使用getApplicationContext() – Dilip 2013-02-19 11:13:51
嘗試下面的鏈接,並希望使用完整給你: - –
duggu
2013-02-19 11:14:39