@Bindable不会在BR类中生成字段

时间:2019-04-15 07:00:41

标签: android android-databinding

字段更改时需要通知我。 根据android文档,Bindable注释将在BR类中生成一个字段。 (https://developer.android.com/reference/android/databinding/Bindable) 但是在将@Bindable注释分配给字段后,在BR类中没有看到为此创建的字段。

我清理并重建项目。但没有优势。 即使我确实使缓存无效并重新启动。但什么都没有

这是我的java类

class Job : BaseObservable(), Serializable {

    @SerializedName("id")
    var id: Int = 0

    @SerializedName("title")
    var title: String = ""

    @SerializedName("is_requested")
    var isRequested: Boolean = false
        @Bindable get
        set(value) {
            field = value
            notifyPropertyChanged(BR.requested)
        }

}

但是我有错误。 BR.requested不明...

这是自动生成的BR类先生

public class BR {
  public static final int _all = 0;

  public static final int company = 1;

  public static final int jobExperience = 2;

  public static final int job = 3;

  public static final int educationHistory = 4;

  public static final int user = 5;

  public static final int userLanguage = 6;
}

如您所见,BR类中Job.kt的isRequested字段没有对应的字段。

2 个答案:

答案 0 :(得分:1)

请注意,您需要应用kotlin-kapt插件。

此答案可能会有所帮助

https://stackoverflow.com/a/54197326/1944237

答案 1 :(得分:0)

替换此

 @SerializedName("is_requested")
  var isRequested: Boolean = false
  @Bindable get

收件人:

 @SerializedName("is_requested")
var isRequested: Boolean
    @Bindable get() = isRequested
    set(value) {
        isRequested = value
        notifyPropertyChanged(BR.isRequested)
    }

不需要设置和获取方法。您可以默认访问它。