/ / onPropertyChanged - Ako prepnúť propertyId z externej triedy - Android-databinding

onPropertyChanged - Ako zmeniť vlastnosťId z externej triedy - android-databinding

Mám model, ktorý rozširuje BaseObservable. Mám model zobrazenia, ktorý obsahuje odkaz na model a prihlási sa k zmenám vlastníctva v rámci modelu. Ako zapnem Model.propertyId zo spätného volania v modeli zobrazenia? Vo vzorke nižšie BR.assignedId je vlastnosť v modeli. Napríklad:

Zobraziť model

public void onPropertyChanged(Observable sender, int propertyId)
{

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

odpovede:

0 pre odpoveď č. 1

Odporúčam vám, aby ste si prečítali vzor pozorovateľa. Vyššie uvedený kód má entity: Observer a Observable. Pozorovateľ má pozorovaciu metódu. Každá trieda, ktorá chce sledovať "pozorovateľný", sa musí zaregistrovať ako "pozorovateľ". Observable nazýva metódu pozorovania pozorovateľa a to je, ako funguje obvyklé spätné volanie. (názvy tried a metód sa môžu líšiť, používam podľa zámeru a kontextu)

Skontrolujte "ViewModel.java "bude implementovať nejaké" pozorovateľské "rozhranie, ktoré by malo metódu" onPropertyChanged () ". Budete musieť nastaviť objekt ViewModel.java v Model.java (skontrolujte, či by ste mali mať metódu s menom ako addPropertyChangeObserver (), aj keď to môže byť iná, ale podobná metóda.Táto metóda sa používa na nastavenie objektu ViewModel.java v Model.java Teraz Model.java zavolá metódu "onPropertyChanged" na ViewModel.java.

ak chcete potom niečo zmeniť na modeliskontrolujte parameter odosielateľa. Môžete pridať inú metódu do rozhrania implementovaného Modelom a vykonať modifikácie na Modeli, alebo ho môžete jednoducho zadať po kontrole jeho typu pomocou inštancie instanceof a môžete vykonať proces na Model.java z metódy spätného volania.