Bonjour,
J'ai récupéré un projet pour lequel je ne comprends pas tout le principe. Dans une activité, une interface est injecté via un
1 2 3
|
@Inject
private InterfaceName une_interface |
et dans le onCreate, j'ai
AppComponent.Graph.get().inject(this);
où Appcomponent est
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
@Singleton
@Component(modules = {MainModule.class, CacheModule.class, N2Module.class})
public interface AppComponent extends AppGraph {
final class Graph {
private static AppComponent appComponent;
private Graph() {
//no instances
}
public static void init(MyNameApp app) {
appComponent = DaggerAppComponent.builder()
.mainModule(new MainModule(app))
.build();
}
public static AppComponent get() {
return appComponent;
}
}
} |
A priori, je vais devoir faire une p'tite formation Dagger pour tout ca , mais que fait l'injection d'une interface ? Pour moi, on les implémente pour utiliser leur méthodes généralisées. Alors y a-t-il un moyen sans Dagger de faire la meme chose ?
Le problème que je rencontre est qu'une méthode de cette interface est utilisée directement, par exemple
textview.setText(une_interface.readText())
où une_interface.readText() renvoie un String. Et quand j'essaie un truc similaire, la méthode me renvoie un gros NullPointerException.
J'ai contourné le problème pour trouver une solution, mais maintenant, je voudrais bien l'affronter, mais j'ai besoin d'aide.
Partager