我是android新手。我试图在从服务器获取的共享首选项中保存一些信息。但是当我退出应用程序时,优先保存值,设置为0.我希望我保存的优先值保持不变,直到我手动清除它。
这是我的代码
public class SharedPreference {
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
static final String NAME = "RealTimeLocationTrackerUserId";
static final String NAME_KEY = "name";
static final String LOGIN_KEY = "login";
public SharedPreference(Context context) {
this.sharedPreferences = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
this.editor = sharedPreferences.edit();
}
public void save(String name) {
editor.clear();
editor.putBoolean(LOGIN_KEY, true);
editor.putString(NAME_KEY, name);
editor.commit();
}
public void remove() {
editor.putBoolean(LOGIN_KEY, true);
editor.clear();
editor.commit();
}
public HashMap<String, String> retrieveData() {
String name = sharedPreferences.getString(NAME_KEY, null);
HashMap<String, String> map = new HashMap<>();
map.put(NAME_KEY, name);
return map;
}
}
我通过调用
来保存活动中的数据sharedPreference.save(tmpOb.getString("user_id"));
并通过以下方式检索:
HashMap<String, String> map = sharedPreference.retrieveData();
String loginName = map.get(SharedPreference.NAME_KEY);//testing
答案 0 :(得分:0)
这是使用共享偏好的最佳方式,只需调用此方法
即可使用此类进行存储并检索项目中的Sharepreference,只需复制此类的有害生物
<强> SharedPreferenceManager.java 强>
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public class SharedPreferenceManager {
public static void setDefaults(String key, String value, Context context) {
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();
}
public static String getDefaults(String key, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, null);
}
public static void setDefaults_boolean(String key, boolean value, Context context) {
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(key, value);
editor.commit();
}
public static Boolean getDefaults_boolean(String key, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getBoolean(key, Boolean.parseBoolean(null));
}
public static void ClearAllPreferences(Context context){
//remove all your prefs
context.getSharedPreferences("prefs", 0).edit().clear().commit();
}
}
对于商店价值
SharedPreferenceManager.setsetDefaults("key","Value",context);
用于检索值
SharedPreferenceManager.getDefaults("Key",Context);
答案 1 :(得分:0)
使用this library,简化了SharedPreferences
的使用,让您的生活更加轻松。
Android-SharedPreferences-Helper 简化了默认Android SharedPreferences类的使用。开发人员可以做几行 代码本来需要几个。很简单 理解与默认类相比并且易于使用。
- 一行初始化和设置
- 轻松选择是使用默认首选项还是自定义首选项文件
- 预定义(数据类型默认值)和可自定义(您可以选择的)每种数据类型的默认值
- 只需使用额外的参数
即可为单次使用设置不同的默认值- 您可以像默认类一样注册和取消注册OnSharedPreferenceChangeListener