3 回答
TA贡献1788条经验 获得超4个赞
为了保存
SharedPreferences pref = getSharedPreferences("Name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("keyname",true);
editor.putString("keyname","string value");
editor.putInt("keyname","int value");
editor.putFloat("keyname","float value");
editor.putLong("keyname","long value");
editor.commit();
忘记
SharedPreferences pref = getSharedPreferences("Name", Context.MODE_PRIVATE);
pref.getString("keyname",null);
pref.getInt("keyname",0);
pref.getFloat("keyname",0);
pref.getBoolean("keyname",true);
pref.getLong("keyname",0);
对于单次删除
SharedPreferences pref = getSharedPreferences("Name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.remove("keyname");
editor.commit();
对于所有删除
SharedPreferences pref = getSharedPreferences("Name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.clear();
editor.commit();
TA贡献1869条经验 获得超4个赞
要保存数据,请使用以下代码示例
name = NameEditText.getText().toString();
age = AgeEditText.getText().toString();
id = IDEditText.getText().toString();
SharedPreferences prefs = getSharedPreferences(
"com.example.myprofile", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("userName", name);
editor.putString("userAge", age);
editor.putString("userID", id);
editor.apply();
要检索数据,请使用以下代码示例
SharedPreferences prefs = getSharedPreferences(
"com.example.myprofile", Context.MODE_PRIVATE);
name = prefs.getString("userName", "");
age = prefs.getString("userAge", "");
id = prefs.getString("userID", "");
之前的onCreate方法
String name;
String age;
String id;
解释:
的第一个参数
getSharedPreferences
是你的包名,基本上是你代码的第一行。你不需要创建多个
SharedPreferences
实例,一个就足够了您不需要创建多个
SharedPreferences.Editor
实例,一个也足够了。您可能不想使用随机的
key
,例如用户的用户名来保存数据,因为您随后需要通过意图将密钥传递给其他活动,如果您要这样做,为什么不发送用户名而不是钥匙?使用
editor.apply()
代替editor.commit()
onPause()
在 中保存和检索数据是很常见的onResume()
,因此将它们声明为全局会很有用,以避免编写额外的代码行。
TA贡献1777条经验 获得超3个赞
您正在使用特定字符串( getString(R.string.ProfileAge) ....)通过使用 commit() 或 apply() 以私有模式将数据保存在共享首选项中:-
SharedPreferences sharedPreferences1 = getSharedPreferences(getString(R.string.ProfileAge), Context.MODE_PRIVATE);
SharedPreferences sharedPreferences2 = getSharedPreferences(getString(R.string.ProfileID), Context.MODE_PRIVATE);
但是您并没有尝试在必须使用的私有模式下使用这些字符串获取该数据:-
SharedPreferences sharedPref = getSharedPreferences(getString(R.string.ProfileAge), Context.MODE_PRIVATE);
String name = sharedPref.getString("key", "defaultValue");
添加回答
举报