0

I am using a room database with live data

Retrieving information from Database

private fun getData(query: String) {
    var dataIssueJson: MutableList<DataIssue>
    dataViewModel.searchDatabase(query).observe(this, {
        dataList = it as MutableList<Data>

        data = if (dataList.isNotEmpty())
            dataList[0] else
            Data()
        val gson = Gson()
        val dataIssueString =
            if (dataList.isNotEmpty()) {
                dataList[0].dataIssue
            } else ""

        val type = object : TypeToken<MutableList<DataIssue>>() {}.type

        dataIssueJson = if (dataIssueString.isNotEmpty())
            gson.fromJson(dataIssueString, type)
        else
            mutableListOf()
        viewAdapter.clear()
        initRecyclerView(dataIssueJson.toDataIssueItem())

        val dataStatus = if (dataList.isNotEmpty())
            dataList[0].dataStatus
        else "Status"

        dataViewModel.dataStatus.value = dataStatus
        colorStatus(dataStatus)
    })
}

Recyclerview

private fun initRecyclerView(dataItem: List<dataIssueItem>) {
    binding.recyclerViewDataIssues.apply {
        layoutManager = LinearLayoutManager(this@MainActivity)
        adapter = viewAdapter.apply {
            addAll(botItem)
            setOnItemClickListener(onClickItem)
            notifyDataSetChanged()

        }
        scrollToPosition(binding.recyclerViewDataIssues.adapter!!.itemCount - 1)
    }
}

private fun List<DataIssue>.toDataIssueItem(): List<DataIssueItem> {
    return this.map { DataIssueItem(it) }
}

OnClick

private val onClickItem = OnItemClickListener { item, view ->
    if (item is DatatIssueItem) {
        Log.d(AppConstants.MAIN_ACTIVITY_TAG, "DataIssue:${item.dataIssue.dataIssue}, date&time: ${item.dataIssue.dateAndTimeOfIssue}")

    }
}

The Recyclerview works fine, but when I click on the Recyclerview Item it returns an empty Item and I'm just not sure why

DJ. Aduvanchik
  • 332
  • 5
  • 17

1 Answers1

0

Yeah, I figured it out. The data comes from the Item itself, so make sure to let the data be accessible from the Item.

DJ. Aduvanchik
  • 332
  • 5
  • 17