2012-10-20 21 views
1

的名字,我m到處NullPointerException異常每當我嘗試這個 -獲得家長acitvity null異常

getCallingActivity().getClassName() 

我想從called/child活動caller/parent胡亞蓉的名稱。

回答

1

如果檢查getCallingActivity只返回如果調用活動預期導致即只有當活動開始調用startActivityForResult

所以大多數情況下,這不會工作價值的文檔。更好的方法是通過意圖傳遞價值。選中此項post

+0

當然,我使用了-startActivityForResult(intent,RESULT_OK);並且在被調用的活動中,我使用了getCallingActivity()。getClassName(),試圖獲得調用活動的名稱,但是它給出了NullPointeExcption.Pls幫助 – Tanvir

+0

所以你在調用活動完成後在OnActivityResult中獲得RESULT_OK? – nandeesh

+0

我沒有得到RESULT_OK在OnActivityResult,我用startActivityForResult(intent,RESULT_OK);和setResult(RESULT_OK,data);但我不知道RESULT_OK的作用。 – Tanvir

1

您的通話活動可能比您預期的要快。這發生在我身上並導致getCallingActivity返回null,即使調用活動正在使用startActivityForResult

+0

那麼,你是如何解決這個問題還是保持活動結束? –

+0

根據http://stackoverflow.com/questions/14019156/detecting-activity-is-started-for-result/和http://stackoverflow.com/questions/8289824/why-is-getcallingactivity-always-returning- null您可以將您的活動作爲Extra加以傳遞。這將是一個有效的解決方案嗎? – Goot

0

調用者和被調用的活動必須在一個任務中。 也就是說,你不能用任何標誌來啓動被叫活動Intent.FLAG_ACTIVITY_NEW_TASK