这个 DataBinding 有毒- 大声喊 Help me

Android · harkben · 于 发布 · 最后由 harkben回复 · 304 次阅读
96

我对Databinding 不熟,团队另一个小伙伴再用,每次拉下他的代码,稍有变更就会报错。
每次我Clean 项目 DataBinding 就会全部报错。StackOverFlow 上翻光所有相关记录都没有这样的错误,或者就是使用自定义事件类。
xml 代码片段如下

<data class="IBindMapResultPlus">

        <variable
            name="item"
            type="com.saic.roewe.v1.model.MapResult" />

        <variable
            name="click"
            type="android.view.View.OnClickListener" />

        <import type="android.view.View" />

        <variable
            name="distance"
            type="String" />

    </data>

<!-  View 绑定->

 <TextView
                    android:id="@+id/send"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="@dimen/dimen_5dip"
                    android:layout_toStartOf="@+id/save"
                    android:background="@drawable/se_btn_main_3"
                    android:gravity="center"
                    android:onClick="@{click}"
                    android:paddingBottom="@dimen/dimen_8dip"
                    android:paddingEnd="@dimen/dp_10"
                    android:paddingLeft="@dimen/dp_10"
                    android:paddingTop="@dimen/dimen_8dip"
                    android:text="@string/send"
                    android:textAllCaps="false"
                    android:textColor="@color/white"
                    android:textSize="@dimen/text_14sp" />

报错信息:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

java.lang.RuntimeException: Found data binding errors.
*/ data binding error *msg:Cannot find the setter for attribute 'android:onClick' with parameter type android.view.View.OnClickListener on android.widget.TextView.
file:G:\ASProject\thcc-android-zhusw97-1449\app\src\main\res\layout\item_my_favorite_new_copy.xml
loc:114:39 - 114:43
*\ data binding error *
*/ data binding error *msg:Cannot find the setter for attribute 'android:onClick' with parameter type android.view.View.OnClickListener on android.widget.TextView.
file:G:\ASProject\thcc-android-zhusw97-1449\app\src\main\res\layout\item_map_result_plus.xml
loc:99:39 - 99:43
*\ data binding error *

错误信息是提示参数类型不匹配,但是我也没找到到底该如何使用View.OnClickListener.
那个使用DataBinding 也不知道,一番查找无果,求助DiyCode 老司机们,先谢过

共收到 2 条回复
5454 1502809648

应该给onclick传一个实例的方法

96
harkben · #2 ·

#1楼 @qinglianzhang 不知道是不是版本问题,现在依然是可以正常编译的。使用的是android.view.View.onClickListener 接口
.吓得我更不不敢clean - -~

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册