tutorial studio implement how fragments example dinamicos android android-layout android-fragments framelayout

android - studio - Obtener Fragment unido dinĂ¡micamente a<FrameLayout>?



how to implement fragments in android studio (1)

Permítanme concluir con una respuesta completa :)

En este caso, el Fragment agregado dinámicamente utiliza el ID de la View del contenedor ( ViewGroup ).

ref: http://developer.android.com/guide/components/fragments.html#Adding

Nota: Cada fragmento requiere un identificador único que el sistema puede usar para restaurar el fragmento si la actividad se reinicia (y que puede usar para capturar el fragmento para realizar transacciones, como eliminarlo). Hay tres formas de proporcionar una identificación para un fragmento:

  • Proporcione el atributo android: id con una ID única.
  • Proporcione el atributo android: tag con una cadena única.
  • Si no proporciona ninguno de los dos anteriores, el sistema usa el ID de la vista de contenedor.

Es porque es un Fragment después de todo, tenemos que usar getSupportFragmentManager().findFragmentById() para recuperarlo, que devuelve un Fragent , en lugar de findViewById() que devuelve una View .

Entonces la respuesta a este problema sería:

((aFrag) getSupportFragmentManager().findFragmentById(R.id.FragmentContainer))

Gracias a @Luksprog.

Bueno, tengo un <FrameLayout> simple:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/FragmentContainer" android:layout_width="fill_parent" android:layout_height="fill_parent" />

Luego, en mi código, le agregué un Fragmento:

FragClass aFrag = new FragClass(); getSupportFragmentManager().beginTransaction() .replace(R.id.FragmentContainer, aFrag).commit();

Y en otro lugar de mi código, quiero obtener ese objeto FragClass (extends Fragment) del ID R.id.FragmentContainer .

Yo he tratado

((ViewGroup) findViewById(R.id.FragmentContainer)).getChildAt(0)

o

((FrameLayout) findViewById(R.id.FragmentContainer)).getChildAt(0)

pero devuelven la View , en lugar del Fragment atribuye.

Sé que puedo mantener la variable aFrag alguna parte, así que no necesito encontrarla de nuevo. Pero creo que debería haber una forma de recuperarlo.