[英]Cannot find the setter for attribute 'android:onClick' with parameter type lambda on android.widget.RelativeLayout
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable name="user"
type="com.daimler.user.persistence.User"/>
<variable name="callback"
type="com.daimler.user.ui.UserClickCallback"/>
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:paddingBottom="@dimen/row_padding"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"
android:paddingTop="@dimen/row_padding"
android:onClick="@{() -> callback.onUserClick(user)}">
public class UserClickCallback {
public void onUserClick(User v) {
}
}
我寫了這樣的代碼,看起來不錯,但顯示錯誤:
錯誤:(36, 28) 在 android.widget.RelativeLayout 上找不到參數類型為 lambda 的屬性“android:onClick”的設置器。
有人幫忙嗎?
改變這一行。 希望這有幫助。
android:onClick="@{() -> callback.onUserClick(user)}">
到
android:onClick="@{(view) -> callback.onUserClick(user)}">
我有同樣的問題。 我刪除了“ .gradle
”文件夾並單擊“ Rebuild Project
”。
它對我有用。
我得到了答案。 默認綁定適配器不起作用,所以我添加了 app:onclick 綁定:
@BindingAdapter({"app:onClick"})
public static void setOnClick(View view, View.OnClickListener clickListener) {
view.setOnClickListener(clickListener);
view.setClickable(true);
}
然后我像這樣改變了xml:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:paddingBottom="@dimen/row_padding"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"
android:paddingTop="@dimen/row_padding"
app:onClick="@{() -> callback.onUserClick(user)}">
將“android:onClick”更改為“android:onClickListener”,它對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.