При использовании привязки данных в Xml MutableLiveData не предлагается Android Studio
Когда мы используем MutableLiveData во ViewModel, когда мы используем его в XML, Android Studio не предлагает его нам?
public class LoginViewModel extend ViewModel {
public MutableLiveData<UserEntity> userEntity;
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}"
Надеюсь, поможет.