从任何活动

时间:2017-11-27 17:52:35

标签: java android int

好的,所以我正在创建一个有很多活动的应用程序(我对编程很新)。我想创建一个可由所有活动访问和编辑的int。

因此,假设int是“points”,它在Activity 1中设置为0.然后在Activity 2中,我访问0,然后将其设置为3.之后,在Activity 3中,我获得了积分,现在等于3,并将其设置为2.毕竟我回到活动1并得到现在等于2的点。

我将如何实现这一目标。我已经做了一些研究,但从我看到的我可以使用意图,ActivityResult,SharedPreferences,Singleton ......我只是不知道哪个是最好的。

3 个答案:

答案 0 :(得分:2)

Sarah和colens提出的单身方法和共享偏好都将满足您的需求。

现在取决于这些变量的范围有多长。如果您不关心应用程序关闭时会发生什么,您可以使用单例类。否则,当您的应用关闭时,您需要保持持久性,那么您需要一些存储机制作为共享首选项。

PD:当然你可以混合使用这两种技术甚至尝试其他技术(活动结果也可以起作用)但是根据选择的信息量,选择上面讨论的一种技术应该这样做。

答案 1 :(得分:1)

在MainActivity中创建此

public static int globalInteger;

并通过以下方式获取:

MainActivity.globalInteger

答案 2 :(得分:1)

您应该使用共享偏好设置。 当您想要在某个活动中保存 int 时,请执行以下操作:

SharedPreferences sharedPref = getActivity().getSharedPreferences("preference_file_key", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("your_key", yourInt);
editor.commit();

然后从另一个活动中检索它:

SharedPreferences sharedPref = getActivity().getSharedPreferences("preference_file_key", Context.MODE_PRIVATE);
int yourInt=sharedPref.getInt("your_key", defaultValue);

preference_file_key 是您在活动中使用的名称,用于访问存储您的值的共享首选项对象。 your_key 是一个字符串,用作保存和检索的整数的键值, defaultValue yourInt 的值,如果指定的密钥不存在。