找不到符号类数据绑定隐含

问题描述 投票:0回答:2

抱歉,我不能将图像直接发布到该帖子上,因为它说我必须至少具有10个声誉才能发布。

我像这样在android studio中创建了一个xmlXml

并在视图模型内部创建了2个这样的变量

private val _loadingText = MutableLiveData<String>()
val loadingText: LiveData<String> = _loadingText

然后将这样的数据绑定实现到我的对话框视图中

val dialogView = layoutInflater.inflate(R.layout.dialog_custom_loading, dialog_root)
    val binding = DialogCustomLoadingBinding.inflate(layoutInflater, dialogView as ViewGroup, false)
    binding.viewModel = viewModel
    loading = Dialog(this)
    loading.setContentView(binding.root)

但是当我运行代码时,它显示了这样的错误

Error

而且我不知道如何解决。请帮助我。.

更新:当我使用--stacktrace运行时我仍然不知道这是什么错误。

The expression 'viewModelLoadingText.getValue()' cannot be inverted, so it cannot be used in a two-way binding

Details: There is no inverse for method getValue, you must add an @InverseMethod annotation to the method to indicate which method should be used when using it in two-way binding expressions

抱歉,我不能将图像直接发布到该帖子上,因为它说我必须具有至少10个声誉才能发布。我像这样的Xml在android studio中创建了一个xml,并在其中创建了2个变量...

android android-studio kotlin data-binding android-databinding
2个回答
0
投票

您正在使用双向数据绑定,在此位置不正确。


0
投票

[请尝试使用此代码以通过自定义对话框实现数据绑定。对我来说很好[]

    private fun showAddContactDialog() {
    dialog= Dialog(this)

    dialog.setCancelable(true)
    dialog.setCanceledOnTouchOutside(true)
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
    Objects.requireNonNull(dialog.window)!!.setBackgroundDrawable(
        ColorDrawable(Color.TRANSPARENT)
    )
    dialog.window!!.setGravity(Gravity.CENTER)

    val dialogAddNotesBinding:DialogAddNotesBinding =DataBindingUtil.inflate(LayoutInflater.from(this),R.layout.dialog_add_notes,null,false)
    homeViewModel= ViewModelProviders.of(this).get(HomeViewModel::class.java)
    dialogAddNotesBinding.homeModel=homeViewModel
    homeViewModel.addNewContactListener=this
    dialog.setContentView(dialogAddNotesBinding.root)
    val window = dialog.window
    window!!.setLayout(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.MATCH_PARENT
    )
    dialog.show()
}
© www.soinside.com 2019 - 2024. All rights reserved.