小编Iva*_*ack的帖子

获取 java.lang.RuntimeException: 无法从绑定实现方法调用观察者方法

请帮我解决我的问题。我想从我的数据库中获取 LiveData 并用 recycleview 显示它。我在 Repository 中有从数据库中获取它的方法:

fun getEthTransactions(): LiveData<List<EthTransaction>> {
        return mEthTransactionsDao.getTransactions()
    }
Run Code Online (Sandbox Code Playgroud)

我检查了这个方法返回的不是 null。

在 ViewModel 我这样做:

private val ethRepository: EthRepository = EthRepository(application)

    val transactionData: LiveData<List<EthTransaction>>
        get() = ethRepository.getEthTransactions()
Run Code Online (Sandbox Code Playgroud)

在片段中,我尝试获取 viewModel 并绑定绑定:

private val journalFragmentViewModel by lazy {
        ViewModelProviders.of(this).get(JournalFragmentViewModel::class.java)
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

        val activityJournalBinding : FragmentJournalBinding =  DataBindingUtil.inflate(inflater, R.layout.fragment_journal, container,false)

        journalFragmentViewModel.transactionData.observe(this, Observer {
            activityJournalBinding.viewModel = journalFragmentViewModel
            JournalAdapter().journal = it
        })

        activityJournalBinding.viewModel = journalFragmentViewModel
        activityJournalBinding.lifecycleOwner = this
        return activityJournalBinding.root
    }

    override …
Run Code Online (Sandbox Code Playgroud)

android android-databinding android-mvvm android-room android-livedata

8
推荐指数
1
解决办法
8732
查看次数