FindViewById возвращает значение null в представлении <include>

Давайте прямо к коду.

Код операции, метод onCreate

setContentView(R.layout.main); View main_view = findViewById(R.id.main_view); View view_flipper = main_view.findViewById(R.id.vf); View first_tab = view_flipper.findViewById(R.id.prev_pane); 

Код макета main.xml:

 <ViewFlipper android:id="@+id/vf" android:layout_width="fill_parent" android:layout_height="fill_parent" > <include android:id="@+id/prev_pane" layout="@layout/vf_inner" /> <include android:id="@+id/cur_pane" layout="@layout/vf_inner" /> <include android:id="@+id/next_pane" layout="@layout/vf_inner" /> </ViewFlipper> 

Проблема! Главное представление правильно найдено, так же как и ViewFlipper, но prev_pane или cur_pane или next_pane не найдены, возвращается нулевой указатель. Любые идеи почему?

Эта деятельность вызывается через вкладку с использованием намерения. Все ссылки разрешены правильно, кроме

Когда я проверяю переменные, я нахожу содержимое макета vf_inner в mChildren

Solutions Collecting From Web of "FindViewById возвращает значение null в представлении <include>"

Это связано с тем, что теги <include /> не являются фактическим видом в вашем hierachy интерфейса. Они больше представляют собой команду copy & paste для инструментов Android.

Если вы хотите найти панели во время выполнения, добавьте идентификаторы в корневые элементы включенных макетов. Таким образом, они могут быть найдены через findViewById() .

Одна вещь, которую вы можете сделать, это обернуть операторы <include> внутри родительского макета (который все еще является дочерним элементом вашего основного родительского макета). Дайте этим представлениям разные идентификаторы, чтобы вы могли findViewById каждого из них отдельно.