2011-05-23 9 views
8

tengo esta pequeña función aquí:Android Activity.getParent() siempre volviendo nula

public Activity getRootActivity() 
{ 
    Activity a = this; 
    while (a.getParent() != null) 
     a = a.getParent(); 
    return a; 
} 

Pero a.getParent() siempre devuelve un valor nulo. No parece importar cuán profundo en mi UI voy, siempre será nulo.

¿Alguien tiene alguna idea de por qué?

EDITAR

aquí es cómo estoy empezando Actividades (dentro de otras actividades)

startActivity(new Intent(this, activityname.class)); 

Al parecer, eso significa que no soy 'incrustación' ellos? ¿Cómo los "incrusta"?

+0

derecha. el hecho de convertirse en nulo no es un problema, solo a.getParent() devuelve nulo. – Peanut

Respuesta

10

Documentación dice: Actividad public final getParent() desde: Nivel 1 del API

Volver la actividad padre si este punto de vista es un niño incrustado.

¿Su actividad es un niño incrustado?

+0

No debería importar, porque inicialmente 'a! = Null' y no puede ser nulo debido a la condición de ciclo while. –

+0

No estoy exactamente seguro de lo que quiere decir con 'niño incrustado'. – Peanut

+0

El caso más común de actividades incorporadas son miembros de un ActivityGroup. http://developer.android.com/reference/android/app/ActivityGroup.html – Hyperboreus

1

Activity#getParent():

Volver la actividad padre si este punto de vista es un niño incrustado.

¿La actividad es un elemento incrustado? Si no, getParent() devolverá nulo.

Cuestiones relacionadas