Ich baue eine Android App mit MVVM und DataBinding. Und ich habe eine Funktion in meinem ViewModel, die eine Aktivität startet. Ist es in Ordnung, einen onClick-Aufruf in einem ViewModel zu haben?
So.
%Vor%Und in meinem XML:
%Vor%Oder wäre es eine bewährte Methode, es in die Ansicht zu verschieben und von EventBus oder Rx aus aufzurufen und nur POJO in meinem ViewModel zu haben?
Die Antwort auf Ihre Frage ist, was ist Ihr Ziel?
Wenn Sie MVVM für die Trennung von Problemen verwenden möchten, damit Sie Ihr Viewmodel testen können, sollten Sie versuchen, alles, was einen Context erfordert, von Ihrem Viewmodel getrennt zu halten. Das Viewmodel enthält die Kerngeschäftslogik Ihrer App und sollte keine externen Abhängigkeiten aufweisen.
Aber ich mag, wohin du gehst :) Wenn die Entscheidung, welche Aktivität geöffnet wird, in der Ansicht liegt, dann ist es sehr, sehr schwer, einen JUnit-Test dafür zu schreiben. Sie können jedoch ein Objekt in das Viewmodel übergeben, das den Aufruf von startActivity () ausführt. Jetzt können Sie in Ihrem Komponententest dieses Objekt einfach verspotten und überprüfen, ob die richtige Aktivität geöffnet ist.
Das ist absolut perfekt, um es in ViewModel
zu setzen, aber Sie müssen Ihre ViewModel
von Activity
/ Fragment
setzen.
Hier sind einige Links, über die Sie die MVVM-Architektur erlernen können.
Annäherung an Android mit MVVM
Android MVVM
Ссылка
< a href="https://github.com/erikcaffrey/People-MVVM"> Personen-MVVM
Ravi Rupareliya
08.11.2016 04:36
Tags und Links android mvvm decoupling android-databinding