2012-03-20 19 views
15

Tengo un fragmento que necesito mostrar en la pantalla. Quiero poder usar InjectView para inyectar los elementos de mi UI. InjectView funciona bien en las actividades porque la vista (xml) se establece durante onCreate; sin embargo, en los fragmentos, la vista se establece en onCreatView.Android & RoboGuice - ¿Inyectar vistas en Fragment?

Entonces, ¿hay alguna manera de usar InjectView en fragmentos? Sé que podría utilizar findViewById para encontrar cada elemento, pero yo prefiero usar InjectView

public class ProfileFragment extends RoboDialogFragment { 

    @InjectView(R.id.commentEditText) 
    protected EditText commentEditText; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

      // I get a null pointer exception here 
      commentEditText.setText("Some comment"); 

    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.profile , container, false); 

      // I get a null pointer exception here 
     commentEditText.setText("Some comment"); 

     return view; 
    } 

} 
+0

favor protagonizar el tema Roboguice (http://code.google.com/ p/roboguice/issues/detail? id = 160 & q = contentview) para mostrar a los desarrolladores esto debería ser agregado – Diederik

Respuesta

27

inyección ocurre durante onViewCreated

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    commentEditText.setText("Some comment"); 
} 
+2

vamos a trabajar para obtener mejores documentos para 2.0 ahora que está en el release candidate – emmby

+0

@emmby ¿Alguna suerte con los documentos? Ha sido lanzado por un minuto ahora, y los documentos aún faltan, al menos para un buen y completo ejemplo de Fragments. –

+0

estamos trabajando en los documentos ahora. están mejorando, pero todavía no están allí: https://github.com/emmby/roboguice/wiki – emmby