Llamar a setContentView () varias veces

¿Hay alguna manera de llamar a setContentView (id) varias veces con una identificación diferente durante una actividad para representar diferentes vistas o tengo que iniciar una nueva actividad?

Por el comentario de Austyn, me las arreglé para encontrar una guía sobre cómo usar ViewFlipper para lograr esto en otra publicación (ver la respuesta superior marcada aquí ).

Si no quieres usar ViewFlipper, encontré un buen ejemplo de cómo cambiar entre diseños en la misma vista aquí :

XML:

    

Código:

 private void SwitchLayout2() { RelativeLayout Layout1 = (RelativeLayout)findViewById(R.id.layout1); RelativeLayout Layout2 = (RelativeLayout)findViewById(R.id.layout2); // Enable Layout 2 and Disable Layout 1 Layout1 .setVisibility(View.GONE); Layout2.setVisibility(View.VISIBLE); } private void SwitchLayout1() { RelativeLayout Layout1 = (RelativeLayout)findViewById(R.id.layout1); RelativeLayout Layout2 = (RelativeLayout)findViewById(R.id.layout2); // Enable Layout 1 & Disable Layout2 Layout1.setVisibility(View.VISIBLE); Layout2.setVisibility(View.GONE); } 

No, no puedes llamarlo muchas veces fácilmente. Ya sea que necesite eliminar por completo todas las vistas y luego inflar el nuevo diseño, o utilizar un ViewFlipper (o FrameLayout ) para cambiar entre las diferentes vistas.

En una nota lateral, esta pregunta se ha hecho antes, aunque no pude encontrarla de inmediato.

Puedes probar esto desde tu actividad:

 getWindow().addContentView(View, ViewGroup.LayoutParams); 

Las dos vistas de contenido serán una encima de la otra. Pero, no hay una manera directa de eliminar una determinada vista agregada de esta manera.

También tenga en cuenta que al llamar a setContentView después de la última llamada, eliminará todas las vistas de contenido agregado anteriores.