FindFragmentById devolver null
Cuando llamo a findFragmentById () con el id de mi fragmento, devuelve null. Déjame mostrarte el código.
El archivo activity_main.xml
- Causa de NullPointerException android.support.v7.widget.RecyclerView.onMeasure
- ¿Puede la intención recibida por un BroadcastReceiver ser nula?
- Error de inicio de Android Studio v1.2.0: java.lang.NullPointerException
- Fragmentos androides getArguments () return null
- Android SDK Content Loader falla con NullPointerException
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment android:name="com.madduck.test.app.fragment.MainFragment" android:id="@+id/main_fragment" android:layout_width="match_parent" android:layout_height="match_parent" /> <fragment android:name="com.madduck.test.app.fragment.LoginFragment" android:id="@+id/login_fragment" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
El MainActivity.java
private static final int LOGIN = 0; private static final int MAIN = 1; private static final int FRAGMENT_COUNT = MAIN +1; private Fragment[] fragments = new Fragment[FRAGMENT_COUNT] protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fm = getSupportFragmentManager(); fragments[LOGIN] = fm.findFragmentById(R.id.login_fragment); fragments[MAIN] = fm.findFragmentById(R.id.main_fragment); FragmentTransaction transaction = fm.beginTransaction(); for (Fragment f : fragments) { if (f != null) transaction.hide(f); else Log.e(TAG, "???"); } transaction.commit(); }
La cosa es que cuando llamo fm.findFragmentById(R.id.login_fragment);
fm.findFragmentById(R.id.main_fragment);
null pero cuando llamo fm.findFragmentById(R.id.main_fragment);
Tengo el fragmento.
- Cómo obtener una Java.Lang.NullPointerException en Android Fragment
- Android NullPointerException al ejecutar la consulta en la base de datos SQLite
- NullPointerException en handleOnGetSentenceSuggestionsMultiple (SpellCheckerSession)
- ViewRootImpl.setPausedForTransition (boolean) NullPointerException en ActivityTransitionCoordinator cuando la transición a otra Actividad se invoca demasiado pronto
- NullPointerException relacionado con FragmentManager.popBackStack. ¿Cómo resolver?
- Android - NullPointerException en SearchView en la barra de acciones
- android spinner NullPointerException
- ¿Cómo desactivar la interacción con los vídeos html5 en webview o capturar correctamente sus excepciones?
La respuesta Kar0t está perfectamente bien, pero esto puede ayudar a alguien. En mi caso tenía un fragmento dentro de un fragmento y estaba recibiendo el FragmentManager equivocado. Sólo tenía que llamar:
getChildFragmentManager()
Y luego acaba de encontrar el Fragmento como de costumbre:
fm.findFragmentById(R.id.fragment)
Acaba de descubrir mi error.
En mi MainActivity.java estaba importando android.support.v4.app.Fragment;
Y en mi LoginFragment.java estaba importando android.app.Fragment;
. Lo cambié a la misma cosa y fm.findFragmentById(R.id.login_fragment)
ahora devuelve el fragmento correcto.
- Android y Dalvik – Obtener el tamaño de un objeto
- No se puede realizar descodificación de bajo nivel de vídeo en Android 4.2 sin utilizar extractor de medios