Findviewbyid всегда возвращает null

Я программно добавляю представления в линейный макет (отлично работает). Однако, когда я пытаюсь получить 1 конкретное представление изображения, ivBsquadBroken, это представление изображения всегда возвращает значение null. Все остальные представления возвращаются правильно. Я упростил его до двух изображений, и ничто из того, что я пробовал, не вернет это представление. Другое изображение возвращается правильно, и я могу установить изображение, установить видимость и т. Д.

Кроме того, не уверен, почему, но если я объявлю R.layout.rowbridge_squads правильным относительным макетом вместо линейного макета, он сломается.

Спасибо за помощь!

Код для программного добавления относительного макета к линейному макету.

ArrayList<Squadron> tmpships = ((ExtendedApp) getActivity().getApplication()).getCurrentSquad();

    LinearLayout tmpLL = (LinearLayout) mainView.findViewById(R.id.llBSquadList);
    tmpLL.removeAllViews();

    for(int i = 0; i <= tmpships.size() - 1; i++){

        LinearLayout shiplayout = (LinearLayout) getActivity().getLayoutInflater().inflate(R.layout.rowbridge_squads, tmpLL, false);

        ImageView tmpIB = (ImageView) shiplayout.findViewById(R.id.ivBsquadicon);
        ***!! always returns null - - >*** ImageView blasted = (ImageView) shiplayout.findViewById(R.id.ivBsquadBroken);
        Squadron tmpsquad = tmpships.get(i);

Макет надувается

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/llBrowsquaditem"
android:background="@color/bridge_cream">

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/ivBsquadicon"
    android:src="@android:drawable/ic_delete"
    android:adjustViewBounds="true"/>
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/ivBsquadBroken"
    android:src="@android:drawable/ic_delete"
    android:adjustViewBounds="true"/>

</RelativeLayout>

person Bulsatar    schedule 06.11.2016    source источник
comment
Как насчет того, чтобы не выполнять приведение к обоим и просто использовать View shiplayout = ...   -  person K Neeraj Lal    schedule 06.11.2016
comment
Приведение к объекту изображения не должно прерывать процесс Findviewbyid. Ни в какой другой ситуации этого нет. Я не уверен, почему этот отличается   -  person Bulsatar    schedule 06.11.2016
comment
Разве это не (LinearLayout shiplayout = (LinearLayout) getActivity().getLayoutInflater().inflate(R.layout.rowbridge_squads, tmpLL, false);) RelativeLayout? Я имею в виду макет, который был раздут, это RelativeLayout. RelativeLayout нельзя привести к LinearLayout.   -  person Kyrmyzyanik    schedule 07.11.2016
comment
Правильно, но если я попытаюсь передать его родственнику, он сломается. Не знаю, как понять, в чем ошибка   -  person Bulsatar    schedule 07.11.2016


Ответы (1)


Неважно. У меня есть несколько конфигураций для альбомной и портретной ориентации, которые я не обновлял.

Ошибка пользователя...

person Bulsatar    schedule 08.11.2016