Android SharedPreferences,如何保存一个简单的int变量[重复]
Posted
技术标签:
【中文标题】Android SharedPreferences,如何保存一个简单的int变量[重复]【英文标题】:Android SharedPreferences , how to save a simple int variable [duplicate] 【发布时间】:2013-04-18 03:45:00 【问题描述】:我在最后一小时试图在我的 android 应用程序中保存一个整数。我读到这可以使用 SharedPreferences 来完成。但是我不明白为什么这样做看起来如此混乱。
我怎样才能简单地保存一个 int 变量?然后当我再次运行应用程序时,如何再次与该变量交互?
【问题讨论】:
一个简化的方法是使用这个库:github.com/viralypatel/Android-SharedPreferences-Helper ...扩展技术细节在我的answer here ... 【参考方案1】:SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", yourIntValue);
editor.commit();
你可以得到它:
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
int myIntValue = sp.getInt("your_int_key", -1);
SharedPreference
界面使您可以访问 xml 文件,并通过其编辑器轻松地对其进行修改。该文件存储在/data/data/com.your.package/shared_prefs/
,您可以通过此SharedPreference
API 访问它
【讨论】:
嗯,你能放一些 cmets 来了解那里发生了什么,因为我不明白这个例子吗?哪个是变量?什么是“your_prefs”。它旁边的0是什么。什么是“your_int_key” 实际上,您还需要为getInt
提供一个默认值,当找不到带有键your_int_key
的int
时返回该默认值。像这样:int myIntValue = sp.getInt("your_int_key", -1);
其中 -1 是默认值。
我猜第一个例子中的clearNotificationsSP
应该就是sp
吧?
感谢您指出@scorchio
如果你使用 API 9 或更高版本,你应该使用 apply() 而不是 commit()【参考方案2】:
public void SaveInt(String key, int value)
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
editor.commit();
public void LoadInt()
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
savedValue = sharedPreferences.getInt("key", 0);
如果你想把变量保存在某个地方,你必须写 SaveInt("key", 5);这样你将保存值 5,而第一个默认值是 0。如果你想加载它并在另一个活动中使用它,你必须在那里编写这两个方法,并调用 LoadInt();你需要变量的地方。 savedValue 是一个预定义的整数(需要在任何你想使用保存变量的地方声明)
【讨论】:
gist.github.com/john1jan/b8cb536ca51a0b2aa1da4e81566869c4【参考方案3】:这是设置布尔首选项的示例。您也可以使用整数。
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false))
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
希望这可能会有所帮助。
【讨论】:
以上是关于Android SharedPreferences,如何保存一个简单的int变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章
android开发之路11(用SharedPreferences存储数据)
Android 工具类 SharedPreferences 封装
Android - 具有可序列化对象的 SharedPreferences