Логика хранения максимального количества пользовательских избранного в SharedPreferences - PullRequest
0 голосов
/ 19 мая 2019

Я хочу сохранить несколько разных избранных пользователей (в этом примере максимум 5) в общих настройках. Пользователь сможет добавлять и удалять эти избранное из приложения.

Мне трудно понять, как этого добиться (я предполагаю, что необходим какой-то цикл). Суть того, что я пытаюсь сделать, когда пользователь добавляет новый фаворит:

//init prefs
public static final String PREFS_NAME = "PREFS";
SharedPreferences sharedPreferences = null;
SharedPreferences.Editor sharedPreferencesEditor;

//onCreate
sharedPreferences = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);

//method called when user adds new favorite
public void addFavorite(String fav) {

    //int i = 0;
    //int maxFavs = 5;

    //check how many favorites are already stored in shared prefs, if any (is it under maxFavs?)
    //if over maxFavs, display error
        Toast.makeText(getApplicationContext(),"Favorite added",Toast.LENGTH_SHORT).show();

    //else continue
    //upon finding available favorite 'space' (less than permitted maxFavs), add to favorites in shared prefs
            sharedPreferencesEditor = sharedPreferences.edit();
            sharedPreferencesEditor.putString("fav_" + i, fav);
            sharedPreferencesEditor.apply();
    }

Я правильно понял, или есть лучший способ сделать то, что я собираюсь сделать? Надеюсь, это ясно из вышесказанного.

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Создали и создали простую базу данных, следуя примеру здесь:

https://inducesmile.com/android/android-sqlite-database-example-tutorial/

Тем не менее, если у кого-то есть решение, мне было бы интересно посмотреть!

0 голосов
/ 19 мая 2019

Храните счетчик избранных в настройках как int и читайте и обновляйте его по мере необходимости.Также было бы лучше, если бы вы сохраняли избранное в настройках как (ключ: favitedItemId, значение логическое)

Еще лучше: используйте подходящую локальную базу данных для подобных ситуаций.Preferences - это примитивное хранилище типа значения ключа, предназначенное для более простых случаев, таких как сохранение предпочтений пользовательского режима light.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...