@Bindable не создает поле в классе BR

Мне нужно получать уведомления при изменении поля. согласно документации 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 нет соответствующего поля для поля isRequested Job.kt.


person Mohamad Seyedi    schedule 15.04.2019    source источник


Ответы (2)


Обратите внимание, что вам необходимо применить плагин kotlin-kapt.

Этот ответ может быть полезен

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

person saulmm    schedule 12.06.2019
comment
Very Very Tnx, мой друг........ наконец-то решил эту проблему для меня... - person Mohamad Seyedi; 13.06.2019

Замените это

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

To :

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

Нет необходимости в методе set и get. вы можете получить к нему доступ по умолчанию.

person Hemant Parmar    schedule 15.04.2019
comment
TNX много, но мне нужно сеттер и геттер для этого поля, чтобы уведомлять об изменении. но после установки сеттера и геттера соответствующее поле не создается в классе BR. - person Mohamad Seyedi; 15.04.2019
comment
он будет создан после успешной сборки. не волнуйтесь, это сработает. - person Hemant Parmar; 15.04.2019
comment
@MohammadSeyyedi я редактирую свой пост .. пожалуйста, проверьте и дайте мне знать, работает он или нет. - person Hemant Parmar; 15.04.2019
comment
нет брат. это еще не работает. поле BR.isRequested неизвестно компилятору... - person Mohamad Seyedi; 15.04.2019
comment
сделайте это, удалите папку сборки, очистите и перестройте ее снова. - person Hemant Parmar; 15.04.2019