Обновление адаптера FragmentList, основанного на данных в базе данных SQlite, при изменении базовых данных
У меня есть приложение для android (работает в библиотеке поддержки), которое имеет класс mylistfragment extends ListFragment. Вот код для создания ListAdapter:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DbHelperEvent dbHelper = new DbHelperEvent(getActivity());
ArrayList<ReportEvent> events = new ArrayList<ReportEvent>();
events = dbHelper.getAllEvents();
dbHelper.close();
this.adapterAllEvents = new ArrayAdapter<ReportEvent>(getActivity(), android.R.layout.simple_spinner_item, events);
this.adapterAllEvents.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
setListAdapter(adapterAllEvents);}
Но базовые данные могут измениться в любое время, и мне нужно обнаружить это изменение и обновить ListAdapter.
Но я не имею ни малейшего представления, что я должен использовать, чтобы обнаружить эти изменения.1 ответ:
Это зависит:
Если ваша БД всегда одинакова и вам нужно только обнаружить изменения в adapterAllEvents, вызовите notifyDataSetChanged () на adaper
Если ваши данные изменяются в БД, вы можете использовать CursorLoader и LoaderManager.LoaderCallbacks для получения объекта курсора для передачи в CursorAdapter. Вызовите restartLoader, когда ваши данные изменятся