2013-04-10 94 views
0

我的問題是如何在兩個活動之間傳遞像String這樣的數據。通常我會這樣做:如何在活動之間傳遞數據

Intent i = new Intent(thisclass.this,NextClass.class); 
Bundle b = new Bundle(); 
i.putExtras(b); 
b.putString("Name",Name); 
StartActivity(i); 

但是,這將使我的活動關閉,並將打開下一個活動,不是?有什麼方法可以在不打開其他活動的情況下傳遞數據?

+0

爲什麼你需要類似的東西?你的應用程序只有一個活動活動 – fedepaol 2013-04-10 16:16:47

+0

將數據傳遞給目前還不存在的活動有什麼意義? – Egor 2013-04-10 16:17:37

+0

有辦法做到這一點?它有點難以解釋... – yair 2013-04-10 16:18:29

回答

2

我認爲你正在尋找的東西與SharedPreference看到的文檔:SharedPreference

如果它是什麼都在尋找。

試試這個:

全球:

private SharedPreferences pref; 

的onCreate:

pref = this.getSharedPreferences("SharedPreference", Context.MODE_PRIVATE); 

在那裏你會保存數據的地方:

​​

而其他活動:

全球:

private SharedPreferences pref; 

的onCreate:

pref = this.getSharedPreferences("SharedPreference", Context.MODE_PRIVATE); 

,你會帶你的數據的地方:

String dataFromFristActivity = pref.getString("myData", null); 
+0

我實際上需要一些東西來將數據發送到其他類,而現在關閉它。 – yair 2013-04-10 16:27:38

+2

@yair如果您的活動暫停(關閉),您無法發送任何內容。您可以做的唯一事情就是讓活動在恢復時獲取該數據。按照其他人的建議,查看Activity和SharedPreferences的onResume()方法。 – BigBen3216 2013-04-10 16:34:50

+0

使用SharedPreference,您將保存數據,並且可以在任何地方使用它,像SharedPreference一樣使用小型數據庫 – 2013-04-10 16:39:38

0

您的致電活動未關閉,但已暫停。 我在@Egor上。被叫活動尚不存在。除非你試圖在兩個不同應用程序的活動之間發送數據。這是一個完全不同的蠕蟲罐。

+0

即時通訊只是試圖發送數據到另一類在這個時間是封閉的。但用戶總是可以返回到菜單並訪問該課程,因此,當他想要返回並訪問該課程時,他將已經擁有該數據。 – yair 2013-04-10 16:24:58

+0

在這種情況下,嘗試序列化到[SharedPreferences](http://developer.android.com/reference/android/content/SharedPreferences.html)。 – pbhowmick 2013-04-13 19:01:20