Тогда подскажите пожалуйста, как быть. Мне нужно из активности поставить SimpleAdapter на ListView фрагмента.
Вообще то это должен делать фрагмент, а не активность. Фрагмент является списком, пусть он и создает адаптер.
Если сделать это сразу после вызова метода commit(), то код
(ListView) fragment1.getView().findViewById(R.id.fragmentListView).setAdapter(adapter)
выдаст ошибку NullPointerException , так как fragment1.isAdded() тут будет еще false.
да, потому что создание фрагмента происходит асихронно и сразу же после коммита, он не создастся. Ему нужно время.
Я делаю так - вешаю на активность интерфейс, объект которого передаю фрагменту в OnAttach и уже оттуда в методе onActivityCreated вызываю метод интерфейса в активности, в котором и ставлю адаптер и в котором fragment1.isAdded() уже true.
и это совершенно правильно.
Вообще в активности по идее должен быть метод типа onFragmentAdded, который бы вызывался, когда фрагмент добавлен и можно начинать обращаться к его виджетам, но я такого метода не нашел=)
Его нет. Я тоже мучался с этим. Решал проблему разными способами
1. Через слушатель, где я получаю данные в onActivityCreated. Т.е. фрагмент спрашивает данные когда создастся, а не активность их отдает. Тогда фрагмент железно будет создан.
2. Фрагмент отсылает бродкаст о том, что он создан (бросаю его в методе onActivityCreated, либо onStart или onResume), после чего активность заполняет фрагмент.
3. Фрагмент берет данные с кеша (либо базы, и т.д.), которые не лежат в активности.