У меня возникает неприятная проблема с диалоговымфрагментом при изменении ориентации экрана. Объект-член (TextView) становится нулевым, когда я использую его в обработчике, но он был завышен и назначен в onCreateView после поворота экрана.Элементы DialogFragment становятся нулевыми после поворота экрана
В принципе, у меня есть кнопка в диалоговом окне, чтобы пользователи могли выбирать файл из другого вида деятельности. После этого выбранный путь к файлу будет напечатан в текстовом виде.
Так у меня есть:
mHandler = new Handler();
public View onCreateView(...) {
View rootView = ....
mPathView = (TextView)rootView.findViewById(...);
Log.d("test", String.format("%s", mPathView.toString());
...
}
И у меня есть метод, который вызывается в onActivityResult прикрепленного деятельности:
public void onFileSelected(...) {
if(reqeustCode==Activity.RESULT_OK) {
...
mHandler.post(new Runnable() {
public void run() {
Log.d("test", String.format("mPathView==null:%b", mPathView==null));
if(mPathView!=null) {
mPathView.setText(path);
}
}
}
return;
}
//Error handling here
}
Если я проверяю LogCat, я могу увидеть что-то вроде:
09-20 16:13:51.264: test [email protected]
09-20 16:13:52.412: test [email protected] (after rotation)
09-20 16:13:56.129: test mPathView==null: true (after file selected)
Я попытался сохранитьInstance в onCreate, но это не решило этот плюс cing new problem: имя сохраненногоInstanceState всегда равно null в onCreateView.
Я также знаю, что экземпляр воссоздается после поворота экрана. Но я не понимаю, что после повторного создания, mPathView назначается (как указано в logcat log).
Я подозреваю, что это как-то связано с повторным созданием активности, потому что у меня есть экземпляр диалогового окна, созданного в onCreate в Activity ... поэтому в onActivityResult ссылка на диалог больше не отображается , Но в это время я не проверил его и не получил хорошей идеи сохранить экземпляр диалога.
Я прочитал довольно некоторое сообщение в StackOverflow, но все равно не могу заставить его работать ... Любая помощь очень ценится!