sharedPreferences.getStringSet () возврати default оцените (null) (Android)

В классе UtilUser я создал метод, чтобы возвращать список id's излюбленных объявлений.

public static Set<String> getFavs(Context mContext) {
    setSharedPreferences(mContext);
    Set<String> favs = new HashSet<>();
    favs = sharedPreferences
            .getStringSet("favs", null);

    return favs;
}

И назвав это в adapter того, чтобы заносить в список объявления, я хочу показать кнопку добавления / снимать фаворитов, если id баннера находится в списке, который он возвращает нам getFavs (Context mcontext), посредством следующего if

if(UtilUser.getFavs(this.contexto).contains(this.mValues.get(position).getId())){
            Log.d("d", "es favorito");
        }

Проблема, - в котором getFavs всегда он возвращает default, оцените (null)

0
задан 19.03.2019, 14:15
1 ответ

Он возвращает тебя недействительно, из-за которого в момент создания sharedPreferences ты должен устанавливать стоимость из-за default, что тот же самый будет возвращен в случае, если предпочтение будет находиться vacГ - в, должен иметь в виду tambiГ©n, что ты должен setear стоимость в algГєn место перед тем, как использовать mГ©todo getPreferences, я это комментирую, из-за которого я не вижу в ningГєn момент, что estГ©s seteando стоимость в key "favs". Тогда, что ты должен делать сначала:

SharedPreferences sharedPref  = context.getSharedPreferences("PREFERENCES", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref .edit();
    editor.putString(key, save);
    editor.apply();

, Где он говорит context, aplicarГ-схвати контекст активности, fragment, и т.д. В линии editor.putString(key, save), ты вводишь key, в твоем случае "favs" и save, он был бы String, которые ты хочешь сохранять, уже сохраняясь под этой key в момент, в котором ты используешь mГ©todo get preference, podrГЎs получать стоимость, где ты желал.

0
ответ дан 02.12.2019, 05:27