2010-12-13 64 views
22

我有2字符串數組裏面第一個Activity - A,現在我需要將這兩個數組傳遞給second_activity - B,我該怎麼做?在android活動之間傳遞字符串數組

我知道在Android中Intent樣的概念,並已通過只是單一變量值到另一個活動,但我還沒有實現通過活動之間的字符串數組的概念,我已經衝浪網爲相同。

請讓我知道了可能的解決方案。

回答

68
Bundle b=new Bundle(); 
b.putStringArray(key, new String[]{value1, value2}); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 


希望這會幫助你。

爲了閱讀:

Bundle b=this.getIntent().getExtras(); 
String[] array=b.getStringArray(key); 
+0

@viv thanx的快速支持,但你可以請讓我知道「鑰匙」,它是一個單值或者一個數組?請輸入 – 2010-12-13 13:04:47

+0

它只是一個你想在另一個活動中捕獲你的數組的名字......例如:array1或array2:所以你只能在其他活動中用這個名字捕獲它...... – viv 2010-12-13 13:05:53

+0

@viv雅我已經完成,應該做什麼來讀取第二個活動中的包? – 2010-12-13 13:08:01

3

意圖進行數據轉換成鍵值地圖,其中「關鍵」是您將數據存儲到意向時,選擇一個字符串名稱標識符。當讀取這些數據時,您會請求相同的'密鑰'。您可以將各種數據類型存儲在單個意圖中。

+0

亞我是做愚蠢的錯誤,同時爲支撐問一個問題關於「鑰匙」,順便說一句感謝名單 – 2010-12-13 13:16:42

4

不能直接回答這個問題,但你也可以在你的捆綁使用.putStringArrayListExtra()。它比發送字符串數組更靈活。

Bundle b=new Bundle(); 
b.putStringArrayListExtra("URL_ARRAY_LIST", 
         myStringArrayList); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 

然後你就可以得到此ArrayList如下:

ArrayList<String> urls; 
urls = getIntent().getStringArrayListExtra("URL_ARRAY_LIST"); 
+1

是它不這個問題的答案正確,但是我們可以使用這種替代解決方案。順便說一句,問題差不多4年了:-) – 2014-06-27 05:00:44

+0

@PareshMayani我知道它是舊的我需要跨兩個活動傳遞字符串數據是動態的,所以字符串數組效率低下,因爲我們無法改變大小這是解決方案我的問題,並希望分享它。 – 2014-06-27 05:08:49

+0

@PareshMayani四年後你遇到過任何新的解決方案嗎? – 2015-01-20 10:02:57