Ich habe ein Problem bei der Verwendung von Dolch 2. Ich habe die Änderungen zwischen Dolch 1 und Dolch 2 sehr gemocht, aber heute treffe ich eine Wand.Dolch 2 - Teilen von Instanzen zwischen zwei Aktivitäten
Das Problem betrifft Bereiche.
Ich folge einer MVP-Architektur. Ich habe zwei Aktivitäten (eine Liste und Details) und möchte, dass beide einen Moderator teilen. Der Grund dafür ist, dass der Präsentator die Paginierung behandelt und die Detailansicht einen Pager hat, und ich möchte in der Detailansicht paginieren können, wenn ich den Pager wische.
Zur Zeit habe ich zwei Komponenten: ItemComponent und AppComponent
@ApplicationScope
@Component(modules = {AppModule.class, UIModule.class, DataModule.class})
public interface AppComponent extends AppGraph {
//Application Scoped dependencies
}
@ItemScope
@Component(
dependencies = AppComponent.class,
modules = ItemModule.class)
public interface ItemComponent {
void inject(final ItemDetailsActivity itemDetailsActivity);
void inject(final ItemDetailsFragment itemDetailsFragment);
void inject(final ItemListActivity itemListActivity);
}
Das ItemComponent hat ein Modul: ItemModule Die ItemModule bietet ItemPresenter
@Module
public class ItemModule {
private ItemDetailsActivity itemDetailsActivity;
private ItemDetailsFragment itemDetailsFragment;
private ItemListActivity itemListActivity;
public ItemModule(final ItemDetailsActivity itemDetailsActivity) {
this.itemDetailsActivity = itemDetailsActivity;
}
public ItemModule(final ItemDetailsFragment itemDetailsFragment) {
this.itemDetailsFragment = itemDetailsFragment;
}
public ItemModule(final ItemListActivity itemListActivity) {
this.itemListActivity = itemListActivity;
}
// The presenter that handles the pagination
@Provides
@ItemScope
public ItemListPresenter provideItemListPresenter(final ItemService itemService) {
return new ItemListPresenter(itemService);
}
}
All das habe die s ItemScope
Aber in beiden Aktivitäten muss ich die Komponente und das Modul initialisieren, und daher wird eine neue Instanz des Presenters bereitgestellt. Ich habe mehrere Antworten hier auf StackOverflow gelesen und ich habe herausgefunden, dass dies mit Component Abhängigkeiten und/oder SubComponent gelöst werden sollte, aber ich konnte es nicht funktionieren.
Vielen Dank im Voraus!
da (mit großer Vereinfachung) kann nicht gleichzeitig 2 gültigen Klassen von Aktivität abgeleitet werden, was ist der Sinn dieser? – Selvin
Das ist nicht was ich anstrebe. Ich beabsichtige, eine Instanz des ListPresenters sowohl von der ListActivity als auch von der DetailsActivity aus zugänglich zu machen. – palmithor