Обновление счетчика при обновлении SQLite - PullRequest
1 голос
/ 14 мая 2011

У меня есть приложение, в котором пользователь может ввести в поле 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 (адаптер). Не уверен, что это должно было быть там, потому что счетчик отображал находку до обновления, но теперь он работает ...

1 Ответ

0 голосов
/ 14 мая 2011

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

...