Есть Json файл, через Retrofit
получаю из него данные и вывожу в RecyclerView
. Как я выяснил сразу данные обычно не выводят, а сначала записывают в БД и уже из БД выводят в RecyclerView
.
На данный момент я на таком этапе что в коллекцию загружаю все данные полученные из Json и выводу их в RecyclerView
в MainActivity
.
Как мне выстроить логику чтобы при запуске приложения данные брались из БД, а если в БД их нет, то уже брались из Json и записывались в БД и уже потом отображались?
Как я понимаю должно быть так как я выше описал
Вот метод из MainActivity
, который заполняет коллекцию
private void loadData() {
final ApiService api = ApiClient.getApiService();
Call<ItemList> call = api.getFairyTailsJSON();
call.enqueue(new Callback<ItemList>() {
@Override
public void onResponse(Call<ItemList> call, Response<ItemList> response) {
if (response.isSuccessful()) {
itemList = response.body().getItems();
adapter = new ItemsAdapter(MainActivity.this, itemList);
adapter.setItemSendId(MainActivity.this);
recyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this, 1));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
} else {
Toast.makeText(MainActivity.this, "Не удается найти данные для отображения", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ItemList> call, Throwable t) {
Toast.makeText(MainActivity.this, "Нет доступа к сайту", Toast.LENGTH_SHORT).show();
}
});
}
Сделай класс, к примеру DBHelper
, в котором будет статический метод на проверку заполненности БД, к примеру public static void checkDB(){...}
. В теле этого метода сделай проверку на наличие данных в БД. Если есть - ничего не делать, если нет - сохраняй данные в БД.
Ну и в МейнАктивити
просто вызывай DBHelper.checkDB();
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Задача состоит в том, что нужно создать просто элементарно веб приложение с интегрированной базой данных, используя технологию primefacesВ базе...
Есть ли такая возможность и, если есть, то каким образом можно синхронизировать некоторое количество кнопок с календарем на телефоне?