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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
@Inject
private InterfaceName une_interface
et dans le onCreate, j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AppComponent.Graph.get().inject(this);
où Appcomponent est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.