Inyectar objeto con constructor que toma un parámetro usando RoboGuice 2

Estoy probando RoboGuice2 para Android (y Guice para el caso) por primera vez y estoy atrapado en este momento. He sido incapaz de encontrar un ejemplo de cómo hacer esto y me encantaría que alguien me muestre la manera correcta con la explicación. Quiero @Inject un objeto que toma una cadena como un parámetro en el constructor. Ejemplo a continuación:

public class MyActivity extends RoboFragmentActivity { @Inject MyObject obj; public void onCreate(Bundle savedInstanceState) { super.onCreate(); obj.print(); } } public class MyObject { private String name; @Inject public MyObject(String name) { this.name = name; } public void print() { Log.d("debug", this.name); } } 

Estaría muy agradecido por un ejemplo y una explicación de esto.

One Solution collect form web for “Inyectar objeto con constructor que toma un parámetro usando RoboGuice 2”

No estoy seguro de si es posible inyectar un objeto con RoboGuice mientras pasa un parámetro a su constructor (y esto no es ciertamente alentado) . Es posible que desee considerar sólo el cambio de cualquier método que se llama a ese objeto que escribe en el sistema de archivos para tomar en ese parámetro de String . Si no le gusta esa opción, sólo puede tener un método público para establecer ese parámetro antes de llamar a la función de escritura.

Ex:

 @Inject private MyClass myClass; public void onCreate(Bundle savedInstanceState) { super.onCreate(); myClass.setFileName("somefile.txt"); myClass.writeToFile(); } 

O

 @Inject private MyClass myClass; public void onCreate(Bundle savedInstanceState) { super.onCreate(); myClass.writeToFile("somefile.txt"); } 

EDITAR:

Así que después de hacer algunas investigaciones estoy tomando de nuevo mi declaración sobre esto no se anima. De los ejemplos que he visto, su código parece ser en su mayoría correcta. Este enlace proporcionó el ejemplo más completo que pude encontrar. Parece que hay dos opciones si desea inyectar una cadena en el constructor. Puede configurarlo en los enlaces de configuración de la aplicación (que esencialmente crea un singleton que probablemente no desee). La segunda opción es crear un Provide (similar a Factory) y usar ese proveedor. Ambas opciones se describen en el artículo anterior.

  • Mantenga la clase anotada en Proguard
  • Maven + RoboGuice + ActionBarSherlock + RoboGuice-Sherlock
  • Android: Cómo ampliar mi clase de actividad con RoboActivity + ActionBarActivity
  • Mocking SQLite-Database durante la prueba de actividad con Robolectric
  • Los objetos inyectados se convirtieron en nulos después de actualizar a Roboguice 3
  • Android y RoboGuice - Inyectar vistas en Fragmento?
  • Cómo inyectar el contexto usando RoboGuice en Android?
  • InjectView en RoboFragment
  • Gradle y varios proyectos con Roboguice dependencia
  • Roboguice 2.0 inyecta la aplicación en POJO
  • Uso de RoboFragment con FragmentManager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.