我有一個活動在用戶選擇聯繫人後恢復。現在,在用戶選擇一個聯繫人onSavedInstanceState被調用之前,我把一個字符串放在Bundle中。現在,用戶選擇聯繫人並返回結果後。 onRestoreInstanceState不會被調用。只有onResume()被調用。那麼,一旦活動恢復,我怎麼會把我的字符串拉回來?如何從onResume()中的bundle中拉字符串?
回答
比方說你有兩個活動A和B,如果你想通過從A到B的信息活動A開始活動B.,你可以從一個信息傳遞與以B:
Intent i = new Intent(this. ActivityB.class);
i.putExtra("Key","Value");
startActivity(i);
然後在活動B你可以得到
String value = this.getIntent().getExtras().getString("keyName");
字符串但是,如果你想從B到A傳遞信息,你必須使用不同的方法。您需要使用startActivityForResult
而不是使用startActivity
。這種方法的描述在這裏找到:How to return a result (startActivityForResult) from a TabHost Activity?
getIntent()沒有getBundle方法 –
檢查我的答案 – dymmeh
因此,沒有辦法在onSavedInstanceState,onCreate和onRestoreInstanceState之外獲取Activities包? –
首先,爲什麼onRestoreInstanceState不點火:根據documentation,onRestoreInstanceState被後在onStart(),其中,根據activity lifecycle diagram,只得到後的onCreate稱爲所謂或onRestart。如果您的主要活動在用戶選擇聯繫人時未被銷燬,那麼onStart將永遠不會觸發,並且onRestoreInstanceState永遠不會觸發。該圖顯示了「活動之前出現另一個活動」並且onPause被觸發時的情況 - 在那裏,只有當系統需要更多內存時,活動纔會被終止。
其次,如何獲取您保存的數據之前選擇一個聯繫人 - 一個本地變量應該這樣做,因爲活動留在內存中。如果您的活動確實在而不是停留在內存中,onRestoreInstanceState應該會觸發。
非常感謝。你的最後一部分對我所要做的事情非常有用 –
- 1. 如何從字符串中瓦拉
- 2. 從xml中拉字符串
- 3. 如何從C#中的字符串中獲取字符串的子字符串?
- 4. 如何從一組字符串中產生一組字符串在斯卡拉
- 5. 如何從Python中的字符串中提取子字符串?
- 6. 如何從java中的字符串中提取子字符串
- 7. 如何從Python中的字符串中刪除字符串?
- 8. 如何從tcl中的字符串中刪除子字符串
- 9. 如何從C++中的字符串中提取子字符串?
- 10. 如何從Perl中的字符串中提取子字符串?
- 11. 如何從python中的字符串中刪除子字符串?
- 12. 如何從javascript中的字符串中刪除子字符串?
- 13. 如何從c中的字符串中分離字符串#
- 14. 如何從iPhone上的數組中拉出字符串?
- 15. 從字符串中拉出美元
- 16. 從字符串中拉取標題 - Java
- 17. 從字符串中間拉取可變長度子字符串
- 18. 如何從字符串中刪除動態字符字符串?
- 19. 如何在重複字符後從Excel中的單元格拉出字符串?
- 20. 如何在ColdFusion中從字符串中提取子字符串?
- 21. 如何從python中的字符串中刪除中間字符?
- 22. 如何從網頁中拉出字符串並顯示它們?
- 23. 如何從NSUserDefaults中拉出一個字符串
- 24. 如何讓php從下拉框中讀取字符串?
- 25. 如何從一串字符串中獲取字符串?
- 26. 斯卡拉:從字符串
- 27. 斯卡拉從字符串
- 28. 從textarea(MVC)拉字符串
- 29. 如何從linux中的字符串獲取子字符串?
- 30. 如何從字符串的NSArray中檢索字符串
看看這個問題:http://stackoverflow.com/questions/2497205/how-to-return-a-result-startactivityforresult-from-a-tabhost-activity – slayton
我沒有得到這與我有什麼關係問題 –