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
et dans le onCreate, j'aiCode:
1
2
3 @Inject private InterfaceName une_interface
où Appcomponent estCode:AppComponent.Graph.get().inject(this);
A priori, je vais devoir faire une p'tite formation Dagger pour tout ca 8O :?, 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 ?Code:
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; } } }
Le problème que je rencontre est qu'une méthode de cette interface est utilisée directement, par exempleoù une_interface.readText() renvoie un String. Et quand j'essaie un truc similaire, la méthode me renvoie un gros NullPointerException.Code:textview.setText(une_interface.readText())
J'ai contourné le problème pour trouver une solution, mais maintenant, je voudrais bien l'affronter, mais j'ai besoin d'aide.:koi: :arf: