(французский здесь, извините за возможные недоразумения)
Я новичок в привязке данных на Android и борюсь с довольно простой проблемой.
Допустим, у меня есть этот POJO, который мы рассмотрим как часть моей модели
public class User
{
public String name;
public User(String name)
{
this.name = name;
}
}
Теперь у меня есть ViewModel, которая содержит пользователя
public class MyViewModel extends ViewModel
{
private User user = new User("blue");
public String getName()
{
return user.name;
}
public void setName(String name)
{
user.name = name;
}
}
Я хочу, чтобы View (Activity) мог выполнять двустороннюю привязку данных в этом поле "name". Я знаю, как делать Activity и XML, такие как настройка класса Binding и т. Д. Что я не знаю, так это сделать ViewModel наблюдаемым для любых изменений в поле «name» класса User. Обратите внимание, что я не хочу, чтобы сделал мой класс User видимым, выполнив:
public class User
{
public MutableLiveData<String> name;
public User(String name)
{
this.name.setValue(name);
}
}
потому что я лично предпочитаю хранить эту Android-штуку подальше от моей модели.
Как я могу изменить свою ViewModel, чтобы View мог прослушивать изменения «name»? Я видел кое-что с аннотацией @Bindable, но не совсем уверен, как ее использовать.
Спасибо за вашу помощь