При использовании привязки данных в Xml MutableLiveData не предлагается Android Studio

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

public class LoginViewModel extend ViewModel {

    public MutableLiveData<UserEntity> userEntity;

    public UserEntity userEntity1;

}

public UserEntity userEntity1

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

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

1 ответ

Вам необходимо иметь общедоступные методы получения в вашей модели представления для доступа к полям из 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}"

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

Другие вопросы по тегам