При использовании привязки данных в Xml MutableLiveData не предлагается Android Studio - PullRequest
0 голосов
/ 27 мая 2018

Когда мы используем MutableLiveData во ViewModel, когда мы используем его в XML, Android Studio не предлагает его нам?

public class LoginViewModel extend ViewModel {

    public MutableLiveData<UserEntity> userEntity;

    public UserEntity userEntity1;

}

public UserEntity userEntity1;

enter image description here

userEntity1 - это Работа, но userEntity не работает.

Как решить эту проблему?

Обновление:

В Android Studio 3.4.2 эта ошибка исправлена.

1 Ответ

0 голосов
/ 28 мая 2018

Для доступа к полям из XML необходимо иметь открытые методы получения в модели представления.

public class LoginViewModel extends ViewModel {

    private MutableLiveData<UserEntity> userEntity;

    //Mandatory zero parameter constructor, if non zero parameter constructor is necessary, a factory needs to be created for the ViewModel
    public LoginViewModel() {}

    //Option 1: Public getter for the userEntity object
    public MutableLiveData<UserEntity> getUserEntity() {
        return userEntity;
    }

    //Option 2: Alternatively a separate getter can be used for different fields of the model class
    public String getUserName() {
        return userEntity.getValue().getName();
    }
}

Затем вы можете получить доступ к полям в XML следующим образом:

Вариант 1:

android:text="@{userEntityViewModel.user.name}"

Вариант 2:

android:text="@{userEntityViewModel.userName}"

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...