получение данных из комнаты android с видом

#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.наблюдатель. Это выглядит так