У меня есть приложение, в котором пользователь может ввести в поле EditText имя исполнителя, и оно будет добавлено в таблицу sqlite. Это прекрасно работает, но у меня также есть счетчик на ту же активность / макет, который я хочу обновить с этими новыми изменениями. Вот как у меня это настроено:
У меня есть класс sqlite, который вставит новое имя и метод, который будет запрашивать таблицу и возвращать массив ArtistList.
В своем упражнении я могу получить ArtistList в спиннер с помощью адаптера массива при первом создании.
Пользователь вводит новое имя в EditText, обновляет таблицу sqlite, успех ...
Я попытался перезагрузить ArrayList и ArrayAdapter, запустив метод sqlite ArtistList, но счетчик по-прежнему не обновляется, у него до обновления остается тот же старый список. Я знаю, что могу просто выполнить artistList.add (), но это сделает список не в порядке. Я хотел бы иметь этот список в алфавитном порядке, поэтому я получаю ArrayList из класса sqlite, sqlite организует данные для меня.
Я попытался использовать setNotifyOnChange, я попробовал новый (и очищающий) массив и адаптер ... ничего не работает.
Это запущено при создании:
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 (адаптер). Не уверен, что это должно было быть там, потому что счетчик отображал находку до обновления, но теперь он работает ...