¿Cómo cargar programáticamente un archivo XML de diseño en Android?

He hecho un diseñomy_layout.xml) que incluye mediante programación otros dos archivos de diseño XML, digamossome_layout.xml yanother_layout.xml. my_layout.xml se dibuja usandosetContentView(R.layout.my_layout).

Ahora tengo una casilla con IDsome_checkbox, que se define en el interiorsome_layout.xml, y quiero dar a la casilla de verificación unOnCheckedChangeListener utilizandosetOnCheckedChangeListener(), así como esto:

CheckBox cb = (CheckBox) findViewById(R.id.some_checkbox);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    ...
});

Pero ahora unNullPointerException es arrojado, porquecb esnull. Supongo que es porque el diseño que contienesome_checkbox (cual essome_layout) no se carga utilizandosetContentView(R.layout.some_layout).

Pregunta 1: ¿Por qué? ¿Por qué devuelve encontrarR.id.some_checkbox null? some_layout De Verdades visible.Pregunta 2: ¿Cómo puedo 'cargar'?some_layout para que pueda capturarsome_layout en una variable, como lo intenté en el fragmento de código anterior?ACTUALIZAR

Finalmente lo he resuelto, usando lo siguiente, sugerido porStealthjong:

Una solución podría ser la inicialización decheckedChangeListener, agregando un oyente a su vista de lista expandible, y cuando se abre un elemento secundario de la vista de lista expandible, verificando siCheckbox Es uno de los niños inflados, y sumando elcheckedchangeListener si es así.

He creado un método llamadosetCheckedChangeListenerToElement(int resourceId, OnCheckedChangeListener listener), que guarda el ID de recurso dado (que es el ID del elemento al que se adjunta un oyente) y el oyente dado. Una vez que el inflador llama al método.getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent), la vista se puede recuperar. Entonces, en esa vista,findViewById(int resourceId) se puede llamar, donderesourceId es el ID de la casilla de verificación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta