Обновление счетчика при обновлении SQLite

1

У меня есть приложение, в котором пользователь может ввести в поле EditText имя исполнителя, и он будет добавлен в таблицу sqlite. Это отлично работает, но у меня также есть счетчик на той же самой активности/макете, которую я хочу обновить с помощью этих новых изменений. Вот как мне это настроить:

У меня есть класс sqlite, который будет вставлять новое имя и метод, которые будут запрашивать таблицу и возвращать массив ArtistList.

В моей деятельности я могу получить ArtistList в spinner, используя Array Adapter при первом создании.

Пользователь вводит новое имя в EditText, обновляет таблицу sqlite, успех...

Я попытался перезагрузить ArrayList и ArrayAdapter, запустив метод sqlite ArtistList, но spinner по-прежнему не обновляется, он все еще имеет тот же старый список перед обновлением. Я знаю, что могу просто сделать artistList.add(), но это сделает список не в порядке. Я хотел бы иметь этот список в алфавитном порядке, поэтому я извлекаю ArrayList из класса sqlite, sqlite организует данные для меня.

Я попытался использовать setNotifyOnChange, я попробовал новый (и очищающий) arraylist и адаптер... ничего не работает.

Это запускается onCreate:

sqlclass helper = new sqlclass(this);
        SQLiteDatabase db = helper.getWritableDatabase();
        artistList = helper.getArtistList(db, tableName);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, artistList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        adapter.setNotifyOnChange(true);

Спасибо за вашу помощь!

Nevermind... Я закончил создание нового адаптера... и добавил spinner.setAdapter(адаптер). Не уверен, что это должно было быть там, потому что счетчик показывал поиск до обновления, но теперь он работает...

Теги:
android-arrayadapter
spinner

1 ответ

0

Извиняюсь за то, что это неопределенное, но изучите использование CursorAdapter... Я думаю, что это позволит вам повторно запросить и обновить набор данных.

  • 0
    Вы говорите использовать CursorAdapter в моем sqlite? Я исследую это в Google, потому что я не понимаю этого. Этот CursorAdapter должен помочь мне создать ArrayList? Поскольку я в состоянии получить обновленный массив данных просто отлично, его просто спиннер не обновляется.
  • 0
    Прошу прощения, я быстро набрал этот ответ, и у меня не было много возможностей для его резервного копирования ... Если вы используете адаптер массива, сохраняете ли вы ссылку на List <T>, который является вашим набором данных, и заменяете его? ? Если это так, отключите setNotifyOnChange (true) (установлено в false), используйте clear, затем addAll () с новым набором данных, затем вызовите notifyDataSetChanged (). Используется для того, чтобы делать такие вещи с DataAdapters под свингом с настройкой модели, которую они было. Я снова прошу прощения за мой расплывчатый ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню