DialogFragment, показывающий AlertDialog с адаптером, не переживает изменение ориентации
Вопрос
Я наткнулся на стену по этому поводу. Мой DialogFragment хорошо работает со всеми другими диалоговыми окнами, которые у меня есть, за исключением того, в котором используется клиентский адаптер. При изменении ориентации во второй раз я получаю код сгенерированного кода. Это использование пакета поддержки API 4+.
Этого не происходит при первом изменении ориентации, это всегда происходит при втором изменении, что означает, что это происходит в следующем порядке с отображением диалогового окна:
- Портрет -> Пейзаж -> Портрет -> java.lang.IllegalStateException
- Пейзаж -> Портрет -> Пейзаж -> java.lang.IllegalStateException
Вот диалог:
родовое словоЭто DialogItem:
родовое слово Я знаю, что это проблема с адаптером, потому что если я удалю вызов java.lang.IllegalStateException: Fragment NewAlertDialog{447bc528} not attached to Activity
из .setAdapter()
, проблема исчезнет.
Также странно, что на моем устройстве ICS НЕТ ПРОБЛЕМ. Это происходит только на тестируемом мной устройстве Gingerbread. Любая помощь приветствуется!
Спасибо!
Мэтт.
Решение
Проблема решена.Вызов ресурсов getResources () из Activity вместо DialogFragment был необходимым изменением.
До:
родовое словоПосле:
родовое слово