#java #android #android-recyclerview #android-room #android-adapter
Вопрос:
неделю назад я выучил представление переработчика и отлично работал со мной с адаптером и фрагментом в XML-макете и с жестко закодированными данными или в общих настройках, но теперь я изучил базу данных комнат, я следил за сайтом разработчика Google о том, как отображать данные и все такое, и это не работает со мной, я пытался в течение трех дней, но безрезультатно.
RecyclerView recyclerView = findViewById(R.id.mainTaskView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(new TaskAdapter(tasks));
Я пытаюсь получить все элементы в базе данных, но она продолжает выдавать мне нуль.
[при создании кода][1] [1]: https://i.stack.imgur.com/Txtil.png
вот мое репо, если вы хотите просмотреть все файлы.
Я могу использовать allowQueriesInMainThread, но это не рекомендуется, поэтому я пытаюсь добиться наилучшей практики для комнаты и вида.
Ответ №1:
Вам нужны getAllTask()
данные наблюдателя, вызывающие запрос данных в рабочем потоке, отображаемые в основном потоке
Вы можете использовать @QUERY
функцию Room для запроса данных и возврата живых данных.
@Query("SELECT * FROM tableName") public LiveDatalt;Listlt;Entitygt;gt; getAllTask()
viewModel.getAllTask().observer(this,new Observer{ @override public void onChange(Listlt;Entitygt; list){ adapter.setData(list) adapter.notifyDataSetChanged() } })
Я забыл java LiveData.наблюдатель. Это выглядит так