Есть ли способ удалить элемент из общих настроек? - PullRequest
0 голосов
/ 12 марта 2020

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

Мой вопрос: как удалить указанный элемент c из общих настроек, когда я нажмите и удерживайте нажатой, чтобы щелкнуть на указанном c элементе из обзора навигации?

Это мой код:

    private void saveData() {
    SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREF_LIST_KEY, MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    Gson gson = new Gson();
    String json = gson.toJson(navItems);
    editor.putString(SHARED_PREF_LIST_KEY_ITEM, json);
    editor.apply();
}

    private void loadData() {
    SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREF_LIST_KEY, MODE_PRIVATE);
    Gson gson = new Gson();
    String json = sharedPreferences.getString(SHARED_PREF_LIST_KEY_ITEM, null);
    Type type = new TypeToken<ArrayList<NavItem>>() {
    }.getType();
    navItems = gson.fromJson(json, type);
    if (navItems == null) {
        navItems = new ArrayList<>();
    }
}

public class NavItem {
private String name;

public NavItem(String name) {
    this.name = name;
}

public String getName() {
    return name;
}

}

1 Ответ

0 голосов
/ 12 марта 2020

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

Посмотрите на пример ниже:

private void deleteData(NavItem item) {
    SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREF_LIST_KEY, MODE_PRIVATE);
    Gson gson = new Gson();
    String json = sharedPreferences.getString(SHARED_PREF_LIST_KEY_ITEM, null);
    Type type = new TypeToken<ArrayList<NavItem>>() {
}.getType();
    navItems = gson.fromJson(json, type);
    if (navItems! = null) {
        navItems.remove(item);
        saveData() ;// save the updated list to shared preferences 
    }
}

Но это помогает.

...