当前文章: 首页 >> 编程开发 >> JAVA >> Cannot find a setter for that accepts parameter type xx
«   2020年7月   »
12345
6789101112
13141516171819
20212223242526
2728293031
网站分类
访客信息
  • IP: 3.235.239.156
  • 地点: 美国弗吉尼亚州Ashburn
标签列表
最近发表
友站访问排行

Cannot find a setter for that accepts parameter type xx

在学习Android数据绑定ImageView开发时,出现类似以下错误:

Cannot find a setter for <android.widget.ImageView android:srcCompat> that accepts parameter type 'androidx.lifecycle.MutableLiveData<android.graphics.drawable.Drawable>'
If a binding adapter provides the setter, check that the adapter is annotated correctly and that the parameter type matches.



我在model如下定义(BaseApplication是自定义类,主要用于全局获取Context):

public MutableLiveData<Drawable> state = new MutableLiveData<>(BaseApplication.getContext().getResources().getDrawable(android.R.drawable.ic_menu_help));


layout文件ImageView部分如下:

<ImageView
    android:id="@+id/state"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="17dp"
    android:layout_marginEnd="6dp"
    android:layout_marginRight="6dp"
    android:layout_marginBottom="17dp"
    android:srcCompat="@{model.state}"
    app:layout_constraintBottom_toTopOf="@+id/progress"
    app:layout_constraintEnd_toStartOf="@+id/checkBox"
    app:layout_constraintTop_toTopOf="@+id/name"
    tools:srcCompat="@android:drawable/ic_menu_help" />



解决方法(更改layout的xml文件就可以):

内容已经加密,请关注公众号后发送1003获取密码; 使用微信扫描二维码,或者微信直接上搜索公众号jues进行关注;


声明:本站原创文章,转载、复制、使用等请注明出处。
标题Cannot find a setter for that accepts parameter type xx
作者jues
地址: http://blog.jues.org.cn/post/cannot-find-a-setter-for-that-accepts-parameter-type-xx.html
1楼
  • jues 2020-01-15 18:11:36  回复
  • 当然build.gradle会在dependencies中自动添加以下内容:
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'

发表评论:

Powered By Z-BlogPHP 1.6.4 Valyria Powered By Z-BlogPHP © 2018 jues博客 Copyright Your WebSite.Some Rights Reserved.联系站长 Themes by jues

分享:

支付宝

微信