gpt4 book ai didi

java - Android onClick() 在包含 View 上不会让绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 02:36:00 24 4
gpt4 key购买 nike

我有一个单独的布局,我想调用 onClick 并在回调时更新字段

<include
android:onClick="@{() -> viewModel.changeItem(2)}"
layout="@layout/item"
app:attr="@{viewModel.title}"
app:desc="@{viewModel.description}"
app:active="@{viewModel.isSelected}"
/>

但它返回以下绑定(bind)错误:

Cannot find the setter for attribute 'android:onClick' with parameter type lambda on com.X.databinding.ItemBinding.

但我可以绑定(bind)其他 View

<TextView
android:onClick="@{() -> viewModel.changeItem(1)}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>

最佳答案

我建议您直接从代码中调用 onClick。

在 .xml 中为 View 设置 ID,然后设置如下内容:

val item = findViewById(R.id.your_id) etc.
item.onClick { functionYouWantToCall() }

但是,我不知道是否可以在 include 布局上设置 ID 或 onClickListener
如果您无法做到这一点,只需将您的包含内容放入 LinearLayout 中,然后在其上设置您的 onClick 即可。

我曾经也在.xml中设置onClicks,但我认为在代码中设置它会更有效。
此外,我不知道您是否可以在从 xml 调用的函数中设置参数。

关于java - Android onClick() 在包含 View 上不会让绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57202193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com