¿Cómo puedo obtener Fragment from View?
He añadido un Fragment
en un TableLayout
y quiero administrarlos desde mi Activity
contenedores, así que usé esto:
Fragment fragment = (Fragment) tableLayout.getChildAt(i);
Pero getChildAt(int)
devuelve una View
y una View
no puede convertir en Fragment
- Android: Fragment y ViewPager comienza siempre en la primera posición
- No hay animación al cambiar de fragmento a la actividad y volver
- Problemas con la implementación del modo de acción contextual en fragmento recyclerview
- Crear listview en el fragmento android
- ¿Cómo uso las preferencias de los fragmentos con ViewPager?
- ¿Cómo puede manejar el descarte de un DialogFragment (compatibilidad lib) al completar un AsyncTask
- Fragmento BackStack no funciona aunque addToBackStack (null) se llama
- ¿Cómo cambiar el contenido del fragmento al transferir datos del fragmento después de buscar en RecyclerView?
- Android studio AssertionError: No invocar waitForSmartMode desde dentro de la acción de lectura en modo mudo
- OnRequestPermissionsResult no se llama en el fragmento de diálogo
- Uso de Fragmento de Android no-UI
- Manejo de la prensa trasera al utilizar fragmentos en Android
- ActionBarSherlock con ViewPager no llamando ViewPager fragmentos métodos de ciclo de vida al ir y volver de backstack
No sé por qué la gente está votando en contra de su pregunta. Fragments
pueden ser muy confusos a veces, especialmente para principiantes. Para entender su problema, usted debe aprender lo que es un Fragment
y se utilizan.
Para empezar, una View
es algo que tiene existencia en la pantalla. Los ejemplos incluyen: TextView
, EditText
, Button
, etc. Se colocan dentro de XML "layouts". Estos diseños se muestran usando una Activity
.
Ahora, un Fragment
no es una View
. No tiene ninguna existencia en la pantalla en absoluto. En su lugar, es una clase que simplemente gestiona un "diseño" – algo parecido a una Activity
. Si necesita la Vista devuelta por su fragmento onCreateView()
, puede usar findViewById()
directamente dentro de su Activity
.
Si necesita una referencia a su Fragmento, hay dos formas posibles de hacerlo:
1) Si agregó el fragmento de forma programática como este
getFragmentManager() .beginTransaction() .replace(R.id.fragmentContainer, myFragment, myFragmentTAG) .commit();
Puedes usar:
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag(myFragmentTAG);
2) Si agregó el Fragmento dentro de un diseño XML como este:
<fragment android:name="com.example.android.fragments.HeadlinesFragment" android:id="@+id/fragmentContainer" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" />
Puede utilizar esto:
getFragmentManager().findFragmentById(R.id.fragmentContainer);
Básicamente, cada actividad tiene una clase FragmentManager
que mantiene todos los Fragments
activos y hay dos maneras de encontrarlos: Uso de un TAG único que se pasa mientras se muestra un fragmento o se pasa el contenedor view-ID donde se agregó el fragmento.
No se puede obtener un fragmento como este. Usted tendrá que agregar el fragmento con una etiqueta y recuperarla por esa etiqueta.
Para agregar un fragmento haga lo siguiente:
getFragmentManager().beginTransaction().add(R.id.container, fragment, "tagTofindFragment");
Para obtener fragmento:
fragment = getFragmentManager().findFragmentByTag("tagTofindFragment");
Aquí tagTofindFragment
es esa etiqueta que debe ser única entre tus fragmentos.
- TransactionTooLargeEception al intentar obtener una lista de aplicaciones instaladas
- Cómo crear un cuadro de diálogo con pestañas con Android que contiene fragmentos?