如何在android中全局设置值[重复]
Posted
技术标签:
【中文标题】如何在android中全局设置值[重复]【英文标题】:How to set values globally in android [duplicate] 【发布时间】:2017-02-28 13:52:33 【问题描述】:如何全局设置值,以便我可以从任何活动或片段访问。
例如:activity_login.java > user_id 需要全局存储,因此每次依赖于 user_id 的任何部分,从后端检查和提取数据都将很容易,而不是通过活动(意图)
编辑: 我确实需要来自 fragment 或 activtiy 的 setter 和 getter。
【问题讨论】:
将其保存到共享首选项或将其声明为 public static 你在哪个类中获得。 使用共享偏好来保存用户相关数据。 或者,也许是这个。 ***.com/questions/708012/… 你可以声明你的变量为静态的,当你需要使用define时:yourclassname.younamevalue 【参考方案1】:有很多方法可以全局存储值,因此可以从应用程序所有类的任何位置访问它:
-
声明公共静态变量,但不适合长时间存储。
使用共享首选项 - SharedPreferences
使用数据库 - SQlite
您可以使用上述任何一种替代方法来访问全局值。
【讨论】:
静态变量必须小心使用。当需要空间时,操作系统可以从内存中删除应用程序,然后当 Activity 再次激活时,静态变量通常不会恢复。 @Henry,如果你需要在内存中加载一堆东西,那要么是问题,要么不是 没错,这就是我说“小心使用”的原因。对于长期存储静态变量几乎总是错误的方法。 @Henry,谢谢你现在可以看到我更新的答案。【参考方案2】:使用 Sharedpreferences.its 安全的,这里是示例 https://www.tutorialspoint.com/android/android_shared_preferences.htm
【讨论】:
【参考方案3】:使用 sharedPreferences 并访问任何班级的值
将下面的代码放在 SamplePreferences.java
私有静态最终字符串 TOTALCOUNT = "total_count";
public static void setTotalCount(Context thisActivity, String id)
Editor editor = thisActivity.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.putString(TOTALCOUNT, id);
editor.commit();
public static String getTotalCount(Context thisActivity)
SharedPreferences user_pref = thisActivity.getSharedPreferences(KEY, Context.MODE_PRIVATE);
return user_pref.getString(TOTALCOUNT, "0");
您可以使用以下代码设置任何班级的值
SamplePreferences.setTotalCount(thisContext, "2");
使用以下代码访问该值
SamplePreferences.getTotalCount(thisContext);
【讨论】:
以上是关于如何在android中全局设置值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将选定的对话框值设置为片段中的 TextViews [重复]
如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个
全局布尔值在 addListenerForSingleEventValue 函数内设置,但在以下 if 语句中无法识别 [重复]