2012-02-18 14 views
8

Un Activity puede inflar un xml de diseño arbitrario que puede tener o no un marcador de posición Fragment en él.¿Hay alguna manera de que una actividad sepa qué fragmento se acaba de crear?

Si lo hace, el Fragment se creará una instancia y se conectará al Activity.

¿Hay alguna manera de obtener una referencia al Fragment del Activity que se ha adjuntado?

FragmentManger.findFragmentById() supone que conoce la ID por adelantado para que funcione, pero en esta situación lo propongo, no está disponible.

El comportamiento que idealmente me gustaría tener es que el Activity esté al tanto de cualquier Fragment s que se adhiera a él para que pueda responder.

Respuesta

25

Cada vez que un fragmento se adjunta a una actividad, se llama al siguiente método de devolución de llamada con el fragmento adjunto como parámetro, puede usarlo para almacenar la referencia.

onAttachFragment(Fragment fragment) 

http://developer.android.com/reference/android/app/Activity.html#onAttachFragment(android.app.Fragment)

+0

uggh Soy ciego, THX –

+0

maldición, onAttachFragment le dice cuando se une el fragmento, pero no le dice cuando está listo para ser trabajado con decir, después fragment.onActivityCreated() para –

+5

que puede tener una devolución de llamada en su fragmento como una interfaz dentro del fragmento implementado por su actividad ... para que cuando el fragmento esté listo pueda llamar a la devolución de llamada ... Para usar esto puede establecer la referencia para la actividad en onAttachFragment. .. esto también podría ayudar http://developer.android.com/guide/topics/fundamentals/fragments.html#Communica tingWithActivity – iago

Cuestiones relacionadas