2010-05-13 24 views
5

He estado intentando crear un Compound Control en Android 1.5 (como described here) pero no he podido encontrar ningún buen ejemplo sobre cómo hacerlo usando un XML archivo para especificar un diseño. Estoy bien con la creación de una actividad y luego de cargar un archivo XML utilizando la siguiente en el constructor:Crear un componente personalizado basado en LinearLayout, declarando el diseño en XML

setContentView(R.layout.main); 

Sin embargo, quiero hacer esto en la subclase de LinearLayout - para que pueda utilizar este componente compuesto en otra XML diseños. Algo parecido a:

public class CustomView extends LinearLayout 
{ 
    public CustomView(Context context) { 
     super(context); 
     setupView(); 
    } 
    public CustomView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     setupView(); 
    } 
    public void setupView() 
    { 
    setContentView(R.layout.custom); // Not possible 
    } 
} 

¿Cuál es la forma correcta de hacer esto?

Respuesta

13

Usted tiene que "inflar" el diseño para la vista personalizada:

LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
layoutInflater.inflate(R.layout.custom, this, true); 
+0

Así que dentro de mi CustomView.java que inflar el xml que quiero de alguna manera? – powerj1984

+0

Gracias por esto .... – Sid

Cuestiones relacionadas