Podążam za wzorcem projektowym MVP dostarczonym przez Google, aby uzupełnić moją aplikację. Mam jedną Główną Aktywność i wiele Fragmentów i wydaje mi się, że nie mam kłopotów z tworzeniem aktywności dla każdego fragmentu, więc zastanawiałem się, czy zarejestrować fragment prezentera. Co ja widzę, że każdy fragment zarejestrować własną prezenter, ale nie jestem pewien, jak bardzo źle jest ... :)Czy mogę zarejestrować prezentera MVP wewnątrz Fragmentu
Więc tutaj jest mój Prezenter:
public class FirstPresenter implements FirstContract.Presenter {
private final FirstContract.View mView;
public FirstPresenter(FirstContract.View view) {
mView = view;
}
@Override
public void start() {
Log.e(TAG, "Start");
}
}
I tu jest mój Fragment:
public class FirstFragment extends Fragment implements FirstContract.View {
private FirstContract.Presenter mPresenter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container
, Bundle savedInstanceState) {
...
// I register firstFragment's presenter here.
mPresenter = new FirstPresenter(this);
...
Moje pytanie brzmi: czy to właściwa droga? Czy mogę zarejestrować Prezentera w Fragment zamiast w Aktywności? A jeśli nie jest to właściwe, czy istnieje dobry przykład, aby obsłużyć MVP z jednym działaniem i wieloma fragmentami?
Dziękuję, BR!
W przykładowym kodzie w repozytorium Android Blueprint, w "Aktywności" pojawi się 'Prezenterzy', ale rejestracja będzie również wykonana wewnątrz' Fragmentu'. Zobacz 'TaskDetailActivity' na przykład: https://github.com/googlesamples/android-architecture/blob/todo-mvp/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/ taskdetail/TaskDetailActivity.java - używamy także MVP w naszej aplikacji i dokonujemy rejestracji w ten sam sposób. Nie widzę problemu w robieniu tego w ten sposób. – Darwind