2010-08-18 27 views
7

Tengo una vista personalizada (una extensión de un TextView) que quiero agregar dinámicamente a mi diseño (no quiero incluirlo en el archivo main.xml).agregando dinámicamente una vista al diseño de actividad

El libro dice que busque el RelativeLayout usando findViewById() en mi código java, luego crea una nueva instancia de mi vista personalizada, luego usa addView en el RelativeLayout para agregar la nueva vista.

No recibo ningún error, pero cuando hago clic en mi botón para agregar la nueva vista, no ocurre nada (no se agrega la vista). ¿Debo establecer propiedades adicionales en mi vista personalizada (ancho de diseño, altura de diseño, por ejemplo) para que se muestren?

EDIT: añadir código

// changed to an imageview as I thought it might be easier to see an image 
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rellay); 
MyCustomImageView mciv = new MyCustomImageView(null); 
mciv.setId(5); 
LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
mciv.setLayoutParams(p); 
mciv.setImageResource(R.drawable.someImage); 
rel.Addview(mciv); 

Respuesta

3

favor publicar su código donde se agrega la vista. Pero sí, es posible que te falten los parámetros de ancho y alto. Pruebe algo como

LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT);  
txtView.setLayoutParams(p); 

o lo que le gustaría que fuera el ancho y la altura. También en el diseño xml, layout_width y layout_height son atributos obligatorios.

+0

bien He cambiado la vista personalizada para que sea una vista de imagen porque pensé que sería más fácil verla en la Actividad. Edité mi OP para incluir algún código ... sin ver nada. Dado que es una vista relativa, ¿necesito incluir algo para decirle dónde colocarlo en el método AddView()? –

+0

en xml sería como Android: layout_below o android: layout_toRightOf, pero no estoy seguro si es necesario o cómo ponerlo en adhoc de código java. –

+0

hmm ... ya sabía el bit xml, pero quiero que esto ocurra programáticamente. Solo intenté ponerlo en un hilo diferente pensando que ese podría ser el problema (no puedo actualizar la UI en el mismo hilo, y eso no lo solucionó). Estoy perdido –

Cuestiones relacionadas