Utilizând Roboguice pentru a injecta o dependență care nu are un constructor implicit

Dacă am o clasă cu un singur constructor, cum pot să-l fac pe Roboguice să-l injecteze într-o activitate?

Serviciul care urmează să fie injectat:

public FlightManager(Context context){
    //do something with the context
}

Activitatea:

public class recordFlight extends RoboActivity {

    @InjectResource FlightManager manager;

  //whatever code here
}

Singura dependență este contextul, pe care îl adun, ar trebui să fie injectat fără probleme. Cu toate acestea, toate celelalte utilizări ale mele, cum ar fi @InjectView și @Inject de clase cu un constructor implicit, par a fi bine, dar utilizarea de mai sus ucide aplicația fără a mă da chiar și o urmă de stivă.

Vreo idee?

Mulțumiri

Jon

0

1 răspunsuri

Marcați constructorul cu adnotarea @Inject:

@Inject
public FlightManager(Context context){
    //do something with the context
}

Apoi injectați FlightManager astfel:

public class recordFlight extends RoboActivity {

    @Inject FlightManager manager;

    //whatever code here
}

@InjectResource nu este necesar aici, deoarece este o clasă Java obișnuită pe care o injectați, nu o resursă Android.

0
adăugat
Mulțumesc lui Bill, am aflat despre atributul @_Inject pentru constructor, dar nu a reușit să vadă @_InjectResource acolo - este ciudat că nu am încercat niciodată să inject o resursă (doar folosind Roboguice pentru o oră!)
adăugat autor Jon Bates, sursa
Android dezvoltatori, România — Moldova
Android dezvoltatori, România — Moldova
27 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro iOS: @ro_ios Reguli: https://github.com/js-ro/it-telegram/blob/master/RULES.md