Как сохранить строку в sharedPreferences - PullRequest
0 голосов
/ 07 января 2019

У меня есть приложение, в котором мне нужно сохранить строку в общих настройках, чтобы пользователь уже однажды открыл приложение и зарегистрировал свою электронную почту, ему не нужно снова проходить через тот же экран и вместо этого переходить непосредственно на главный экран. .

Мой класс 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");
                }
            }

Я искал ответ, который соответствовал бы моим условиям, но я не нашел и простил меня за мой английский

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Как уже упоминалось другими в комментариях, вам нужны ключи для хранения значения, но также я вижу, что вы не сохраняете значение в методе saveData .

Вам необходимо ввести следующую строку:

editor.apply()

после

editor.putString("", TEXT);

в методе saveData

0 голосов
/ 07 января 2019

Вам нужен фиксированный ключ для сохранения и чтения ваших предпочтений, и вы забыли применить изменения 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...