сбой фрагмента после поворота - PullRequest
0 голосов
/ 09 июля 2019

приложение нормально загружается в любом режиме (вертикальном / горизонтальном), но при вращении происходит сбой.

Я использую sqlit, поэтому перед тем, как запустить фрагмент, используя сеттер, я устанавливаю его переменную Cursor, а затем запускаю ее. из того, что я видел при отладке, даже несмотря на то, что сеттер «работал», фрагмент разбился позже, потому что его курсор был нулевым

основная деятельность

db=new DataBaseHelper(getApplicationContext());
        Fragment fragment = new gallery();
        ((gallery) fragment).setmCursor(db.getAll());

        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.main_fragment_layout,fragment);
        transaction.commit();

1 Ответ

0 голосов
/ 09 июля 2019

Всякий раз, когда вы поворачиваете свое приложение, действие временно выходит за рамки. Это может установить для многих локальных переменных значение null. Я обычно создаю метод с именем RestoreAll (). В этом методе я раздуваю все свои текстовые поля, кнопки и т. Д. И повторно инициализирую их. Я также призываю создавать любые массивы списков или курсоры базы данных, из которых мне нужно создавать списки. Я вызываю RestoreAll () из метода onResume (). onResume вызывается сразу после метода onCreate () при первой загрузке действия. Затем, если экран повернут, снова вызывается onResume (), и это снова вызывает RestoreAll (). Не все будет установлено на ноль, но это простой способ гарантировать, что все будет заполнено заново при каждом возобновлении действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...