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?¿Por qué no hay un método getContentView() para la actividad?
Respuesta
Estoy buscando esto también, pero pensé que podría ser más fácil agregar una identificación al ViewGroup más externo.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/outer">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
Voy a seguir buscando unos minutos más. Me gusta, así que puedo usar findViewWithTag desde el diseño más externo.
que era capaz de llegar a los contenidos de una actividad con esta llamada:
ViewGroup view = (ViewGroup)getWindow().getDecorView();
Usted probablemente debería comprobar que getDecorView devuelve un ViewGroup instanceof para todos los casos, pero con un LinearLayout en la Actividad el código anterior funciona bien. Para llegar a la LinearLayout A continuación, podría simplemente:
LinearLayout content = (LinearLayout)view.getChildAt(0);
Y si tiene 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 + " ");
}
}
Usted puede iterar a través de todos los puntos de vista y registrar sus nombres de clases con la siguiente llamada dentro de su actividad:
logContentView(getWindow().getDecorView(), "");
+1 ViewGroup view = usado (ViewGroup) getWindow(). GetDecorView(); para borrar todas las vistas de una actividad llamando a view.removeAllViews(); - ¡gracias por la respuesta! – AgentKnopf
Siguiendo la línea hará el truco:
findViewById(android.R.id.content);
que es esencialmente igual (que tiene que ser llamado en el contexto de una actividad)
this.findViewById(android.R.id.content);
funciona como un encanto. – atreat
- 1. ¿Por qué no hay un método Convert.toFloat()?
- 2. ¿Por qué no hay método Service.onStop?
- 3. getContentView en Android
- 4. por qué no hay un método de eliminación en HttpWebResponse
- 5. ¿Por qué no hay un método Linq para devolver valores distintos por un predicado?
- 6. ¿Por qué esta actividad no termina?
- 7. ¿Por qué no hay un método para obtener el tamaño real de la pila?
- 8. ¿por qué no hay un método Center() para la clase Rectangle en C#?
- 9. ¿Por qué no hay un documento.createHTMLNode()?
- 10. ¿Por qué no hay Dictionary.TrimExcess()?
- 11. ¿Por qué no hay Xcode para Windows?
- 12. ¿Por qué no hay un String # shift()?
- 13. ¿Por qué no hay un evento SelectedNodeChanged para Windows.Forms.TreeView?
- 14. por qué no hay un método de agregar en la interfaz del iterador
- 15. ¿Por qué no hay un operador [] para una lista estándar?
- 16. ¿Por qué no hay instrumentación de prueba para BroadcastReceiver?
- 17. ¿Por qué mi actividad no se lanza por URL?
- 18. ¿Hay una actividad = un contexto?
- 19. ¿Por qué hay un método iterator() en java.util.Collection
- 20. ¿Por qué la clase python datetime tiene un método 'fromtimestamp', pero no un método 'totimestamp'? clase
- 21. ¿Qué método de actividad se llama primero?
- 22. ¿Por qué no hay isFocused() en GWT?
- 23. ¿Por qué no es un método no Guid.IsNullOrEmpty()
- 24. ¿Hay un costo por método para crear objetos en Java?
- 25. ¿Por qué ObservableCollection no tiene un método RemoveAll?
- 26. ¿Por qué jQuery no proporciona un método .firstChild?
- 27. ¿Por qué no hay un método de sobrecarga IsNullOrEmpty sin parámetros?
- 28. ¿Por qué no hay un método remove (int position) en JSONArray de Android?
- 29. ¿Por qué hay un NSInteger?
- 30. ¿Por qué XElement no tiene un método GetAttributeValue?
Esto también funciona con findViewById. No me había dado cuenta de que podía poner una identificación en la etiqueta más externa del xml. Así es como uso: thisView = (Ver) findViewById (R.id.parent_view); –