【发布时间】:2019-01-07 13:38:33
【问题描述】:
我有一个应用程序,我需要在 sharedpreferences 中保存一个字符串,以便用户已经打开应用程序一次并注册了他的电子邮件,他不必再次通过同一屏幕而是直接进入主屏幕.
我的班级 PreferencesHelpers
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");
}
}
我寻找适合我的情况的答案,但我没有找到并原谅我的英语
【问题讨论】:
-
你为什么不在共享偏好中为你的价值分配一个关键?
editor.putString("", TEXT); -
SharedPreference 使用键、值对。替换 editor.putString("", TEXT); with editor.putString("savingKey", TEXT);和 String text = sharedPreferences.getString("ahhsaushhuuashu", "");使用字符串文本 = sharedPreferences.getString("savingKey", "");。这应该可以正常工作
-
以上答案 + 你错过了
apply(),当你想保存你的偏好时。
标签: java android sharedpreferences