Ответ связан с тем, как соотносятся жизненный цикл Fragment
и его хостинг Activity
.
В коде, который вы разместили, вы ищете EditText
внутри действия:
EditText et = getActivity().findViewById(R.id.testEditText);
Это логически нормально, но зависит от двух вещей. Во-первых, действие должно существовать, иначе getActivity()
вернет ноль. Во-вторых, у действия должен быть вызван метод setContentView()
, иначе findViewById()
вернет ноль.
Внутри фрагмента onCreateView()
мы знаем, что действие уже прикреплено, поэтому первая проблема в порядке. Тем не менее, нет никакой гарантии, что метод действия onCreate()
будет завершен, и поэтому нет гарантии, что setContentView()
был вызван.
Первое место в жизненном цикле фрагмента, где его хостинг имеет гарантированное завершение выполнения onCreate()
, - это обратный вызов onActivityCreated()
фрагмента. Все, что зависит от полностью «работающего» действия, должно быть здесь.