¿Por qué no hay un método getContentView () para la actividad?

La clase Activity tiene un método setContentView() . La clase PopupWindow tiene un método getContentView() pero nada más lo hace. ¿Hay alguna otra manera de obtener la vista de contenido principal para una actividad?

Pude acceder a los contenidos de una actividad con esta llamada:

 ViewGroup view = (ViewGroup)getWindow().getDecorView(); 

Probablemente deberías comprobar que getDecorView devuelve una instancia de ViewGroup para todos los casos, pero con un LinearLayout en la actividad el código anterior funciona bien. Para llegar a LinearLayout, puede:

 LinearLayout content = (LinearLayout)view.getChildAt(0); 

Y si tienes una función como esta:

 void logContentView(View parent, String indent) { Log.i("test", indent + parent.getClass().getName()); if (parent instanceof ViewGroup) { ViewGroup group = (ViewGroup)parent; for (int i = 0; i < group.getChildCount(); i++) logContentView(group.getChildAt(i), indent + " "); } } 

Puede recorrer todas las vistas e ingresar sus nombres de clase con la siguiente llamada dentro de su Actividad:

 logContentView(getWindow().getDecorView(), ""); 

La siguiente línea hará el truco:

 findViewById(android.R.id.content); 

es esencialmente lo mismo que (necesita ser llamado en el contexto de una Actividad)

 this.findViewById(android.R.id.content); 

Estoy buscando esto también, pero pensé que podría ser más fácil agregar una identificación al ViewGroup más externo.

   

Sin embargo, seguiré buscando unos minutos más. Me gusta , así que puedo usar findViewWithTag desde el diseño más externo.