2010-12-04 16 views
5

En la aplicación, estoy luchando Tengo una vista personalizada. No puedo declararlo en el archivo XML de diseño porque voy a utilizar in desde la actividad que contiene mi instancia de vista personalizada y necesito tener acceso a ella (no puedo anular findViewById ...).android: una nueva pregunta de la GUI: ¿cómo declarar viewGroup, sin el formato de archivo XML?

De lo cual decidí declarar todos los elementos de la GUI en la Actividad.

Pero simplemente no puedo hacer un solo paso adelante, ya que ni siquiera se puede crear una instancia ViewGroup ...

Esto es lo que trato:

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

    ViewGroup vg = new ViewGroup(this.getApplicationContext()); 

    setContentView(vg); 

} 

y recibo el mensaje 'No se puede crear una instancia ViewGroup' ...

¿Alguien puede dar un ejemplo directo de cómo declarar viewGroup, que contiene vistas?

La documentación de la clase tampoco es muy fácil para principiantes ... todos los ejemplos se centran en describir el diseño en un archivo XML de diseño ...?

¡Aprecie su esfuerzo, dando un ejemplo!

Respuesta

7

[ViewGroup][1] es una clase abstracta, no se puede crear una instancia. Define un tipo de clases que serán contenedores para poner otras vistas en ellas. En otras palabras, los diseños como LinearLayout de RelativeLayout son ViewGroup. De este modo, se podría hacer algo así:

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

    LinearLayout vg = new LinearLayout(this); 
// set the LayoutParams the way you want. 
// and add textviews, imageviews, ... here for instance. 
    setContentView(vg); 

} 

Para el LayoutParams, creo que debería comenzar con LayoutParams.Fill_parent

+0

Muchas gracias! Perdón por la enorme ignorancia que mostré - No noté que ViewGroup era una clase abstracta ... – karla

+0

NO hay problema. Todos cometemos errores;) – Sephy

Cuestiones relacionadas