簡體   English   中英

在 android.widget.RelativeLayout 上找不到參數類型為 lambda 的屬性“android:onClick”的設置器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM