Bindable must be on a member in an Observable class.报错解决

Bindable must be on a member in an Observable class.报错解决


在使用databinding时报错,实体类必须继承BaseObservable,我的实体如下:

public class Food extends BaseObservable {

    private String img;

    private String description;

    private String keywords;

    public Food(String img, String description, String keywords) {
        this.img = img;
        this.description = description;
        this.keywords = keywords;
    }

    @BindingAdapter("bind:img")
    public static void getImage(ImageView view, String url){
        Picasso.with(view.getContext()).load(url).into(view);
    }

    @Bindable
    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    @Bindable
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Bindable
    public String getKeywords() {
        return keywords;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Kotlin 中使用 MVVM 模式实现 TextView 中部分文字的字体变大、设置不同颜色以及部分文字设置点击事件,可以按照以下步骤进行: 1. 创建一个 ViewModel 类,例如 `TextViewModel.kt`,用于处理文本相关的逻辑和数据。 ```kotlin import androidx.lifecycle.ViewModel class TextViewModel : ViewModel() { // 在这里处理文本相关的逻辑和数据 } ``` 2. 在 XML 布局文件中定义一个 TextView,并设置相应的属性。 ```xml <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{viewModel.spannableText}" android:textColor="@{viewModel.textColor}" android:onClick="@{viewModel.onTextClick}" /> ``` 3. 创建一个继承自 BaseObservableObservableField 类型的属性,用于在 ViewModel 中绑定数据到 TextView 相关的属性。 ```kotlin import androidx.databinding.BaseObservable import androidx.databinding.Bindable import androidx.databinding.ObservableField class TextViewModel : BaseObservable() { val spannableText = ObservableField<String>() val textColor = ObservableField<Int>() // 在这里处理文本相关的逻辑和数据 fun onTextClick() { // 处理点击事件的逻辑 } } ``` 4. 在 Activity 或 Fragment 中使用 DataBinding 绑定布局,并实例化 ViewModel。 ```kotlin import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.databinding.DataBindingUtil import com.example.mvvm.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var viewModel: TextViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) // 初始化 ViewModel viewModel = TextViewModel() // 绑定 ViewModel binding.viewModel = viewModel } } ``` 现在,您可以在 ViewModel 类中处理文本相关的逻辑和数据,并将结果绑定到 TextView 的相应属性上。同时,您还可以在 ViewModel 中定义点击事件的处理函数,并将其与 TextView 的 onClick 属性绑定。 希望这个示例能帮助您理解如何使用 MVVM 模式在 Kotlin 中实现 TextView 中部分文字的字体变大、设置不同颜色以及部分文字设置点击事件。如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值