2013-04-10 97 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