[英]How to save a string in sharedPreferences
我有一个应用程序,我需要在共享首选项中保存一个字符串,这样用户就已经打开了该应用程序一次并注册了他的电子邮件,他不必再次进入同一屏幕,而直接进入主屏幕。
我的班级偏好设置助手
public class PreferencesHelpers {
private static final String SHARED_PREFS = "sharedPrefs";
private static final String TEXT = "ahhsaushhuuashu"; //I want to save this string
public String text;
public static void saveData(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("", TEXT);
}
public static String loadData(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
String text = sharedPreferences.getString("ahhsaushhuuashu", "");
return text;
}
}
MyLogic在MainActivity中保存和检索sharedPreferences值
if (!preferencesHelpers.loadData(getApplicationContext()).contains("ahhsaushhuuashu")) {
webView.loadUrl(URL_);
preferencesHelpers.saveData(getApplicationContext());
} else {
switch (urlMessage) {
case "REDR":
webView.loadUrl(URL + "cira");
break;
default:
webView.loadUrl(URL + "?UDI=" + getInstance().getRegistrationManager().getSystemToken() + "&dev=" + getInstance().getRegistrationManager().getDeviceId() + "&source=app");
}
}
我在寻找适合自己条件的答案,但没有找到并原谅我的英语
您需要一个固定键来保存和读取您的首选项,而您忘记应用对SharedPreference的修改。
您需要这样做:
private static final String SHARED_PREFS = "sharedPrefs";
private static final String TEXT = "ahhsaushhuuashu";
private static final String KEY = "myKey";
public static void saveData(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(KEY, TEXT);
editor.apply();
}
public static String loadData(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
String text = sharedPreferences.getString(KEY, "");
return text;
}
正如其他人在评论中提到的那样,您需要用于存储值的键,但我也看到您没有将值保存在saveData方法中。
您需要输入以下内容:
editor.apply()
后
editor.putString("", TEXT);
在saveData方法中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.