я определяю идентификатор для моего фрагмента макета XML:findFragmentById всегда возвращает нуль
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/test_fragment"
...
Затем я добавить этот фрагмент в OnCreate методе активность в:
MyFragment myFragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, myFragment);
fragmentTransaction.commit();
Это все работает хорошо. Замена фрагментов и также работает.
Позже я пытаюсь получить этот фрагмент по его ID в одном из методов планируемой деятельности на:
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentById(R.id.test_fragment);
Это приводит к myFragment быть null
. Всегда.
Когда я пытаюсь сделать то же самое с тегами вместо идентификаторов можно извлечь фрагмент по его метке без каких-либо проблем:
MyFragment myFragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, myFragment, "testfragment");
fragmentTransaction.commit();
...
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag("testfragment");
Почему не findFragmentById найти фрагмент, но findFragmentByTag делает это? Я что-то упускаю?
Try' (MyFragment) getFragmentManager(). FindFragmentById (R.id.container); ' – offset