Заполните элемент RecyclerView данными из двух таблиц базы данных - PullRequest
0 голосов
/ 26 января 2019

Я создаю приложение, в котором пользователь может зарегистрировать набор доходов и расходов для конкретного имеющегося у вас актива (биткойн, litecoin, банковский счет и т. Д.), Для которого вам необходимо создать учетную запись для каждого из этих активов.Теперь у меня есть cardView для каждой учетной записи, где вы можете увидеть баланс текущего месяца.Мне нужно заполнить эту карту в адаптере RecyclerView с данными из таблицы счетов и таблицы записей (доходы и расходы).Вот изображение:

Account CardView

Что я могу сделать?

Я использую компоненты Библиотеки комнат, LiveData и ViewModel.

1 Ответ

0 голосов
/ 26 января 2019

Если таблицы счетов, доходов и расходов можно объединить, чтобы решить проблему, создав класс данных, содержащий столбцы приведенных таблиц.если есть столбцы с одинаковым именем, переименуйте их в запросе и добавьте обязательное поле в класс данных.

Это пример, в котором у меня есть таблица вопросов, которая может иметь много ответов, но по некоторым причинам,Мне нужно показать ответы с заголовком вопроса в recycleview, поэтому по этой причине я соединил дочернюю таблицу с ее родительской таблицей.

@Dao
interface EvaluationDao  {


@Query("select EVALUATION.*,QUESTION.BRIEF_DESCRIPTION,QUESTION.BRIEF_DESCRIPTION_ENG ,QUESTION.CATEGORY_ID,QUESTION.ID AS Q_ID  ,QUESTION.HELP_LINK ,QUESTION.QUESTION_TITLE,QUESTION.QUESTION_TITLE_ENG ,QUESTION.WEIGHT   from EVALUATION INNER  join QUESTION on QUESTION.ID= EVALUATION.QUESTION_ID where  EVALUATION.CLINICAL_UNIT_ID  = :unitId  AND   QUESTION.CATEGORY_ID  IN (select QUESTION_CATEGORY.ID from QUESTION_CATEGORY where QUESTION_CATEGORY.MODULE_NAME = :moduleName) order by QUESTION.QUESTION_TITLE_ENG")
fun getEvaluations4CinicalUnits(moduleName: String, unitId: String): Flowable<List<EvaluationWithQuestion>>
 }

это эквивалентный класс данных

@Parcelize
class EvaluationWithQuestion() : Parcelable {

@Embedded
var evaluation: Evaluation? = null

@ColumnInfo(name = "CATEGORY_ID")
var categoryId: Int = -1

@ColumnInfo(name = "QUESTION_TITLE")
var questionTitleFa: String = "" 

@ColumnInfo(name = "QUESTION_TITLE_ENG")
var questionTitleEn: String = ""

@ColumnInfo(name = "HELP_LINK")
var helpLink: String = ""

@ColumnInfo(name = "WEIGHT", typeAffinity = ColumnInfo.REAL)
var weight: Double? = null

@ColumnInfo(name = "BRIEF_DESCRIPTION")
var briefDescriptionEn: String? = null

@ColumnInfo(name = "BRIEF_DESCRIPTION_ENG")
var briefDescriptionFa: String? = null

@ColumnInfo(name = "Q_ID")
var questionId: Int = -1

@Ignore
var rowNum: Int = -1
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...