/ / onPropertyChanged - Jak przełączyć propertyId z klasy zewnętrznej - android-databinding

onPropertyChanged - Jak zmienić właściwość PropertyId z klasy zewnętrznej - android-databinding

Mam model, który rozszerza BaseObservable. Mam model widoku, który zawiera odwołanie do modelu i subskrybuje zmiany właściwości w modelu. Jak włączyć Model.propertyId z poziomu wywołania zwrotnego w modelu widoku? W poniższym przykładzie BR.assignedId jest właściwością w modelu. Na przykład:

Wyświetl model

public void onPropertyChanged(Observable sender, int propertyId)
{

switch (propertyId)
{
case MyModel.BR.assignedId://compile error
notifyPropertyChanged(BR.assignedImage);
break;
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

Sugeruję przeczytanie wzorca Obserwatora. Powyższy kod zawiera Entities: Observer i Observable. Obserwator ma metodę obserwacji. Każda klasa, która chce obserwować „Obserwowalne”, musi zarejestrować się jako „Obserwator”. Obserwowalne wywołuje metodę obserwacyjną na Obserwatorze i tak działa zwykłe wywołanie zwrotne. (nazwy klas i metod mogą się różnić, użyłem zgodnie z intencją i kontekstem)

Zaznacz „ViewModel.klasa java implementowałaby interfejs „obserwatora”, który miałby metodę „onPropertyChanged ()”. będziesz musiał ustawić obiekt ViewModel.java w Model.java. (sprawdź, czy powinieneś mieć metodę o nazwie jak addPropertyChangeObserver (), choć może być inna, ale podobna metoda. Użyj tej metody, aby ustawić obiekt ViewModel.java w Model.java. Teraz Model.java wywoła metodę „onPropertyChanged” na ViewModel.java.

jeśli chcesz zmodyfikować coś w Modelu, tosprawdź parametr nadawcy. Możesz dodać kolejną metodę w interfejsie zaimplementowanym przez Model i możesz wprowadzać w nim modyfikacje lub po prostu sprawdzać nadawcę po sprawdzeniu jego typu za pomocą instanceof i możesz wykonać proces na Model.java z metody wywołania zwrotnego.