Как мы инициализируем представления, созданные во время выполнения внутри LinearLayout из фрагмента? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть фрагмент с пустой LinearLayout.В какой-то момент пользователь нажимает кнопку «Добавить», которая вызывает появление другого LinearLayout внутри первого:

// inside the onClick method...
case R.id.addPlayerButton:  addItemsToLinearLayout(mContext, 1);

У меня есть внутренний LinearLayout в другом XML-файле, и он содержит несколько представлений.Одним из таких представлений является значок удаления, функция которого заключается в удалении строки, то есть в удалении внутреннего LinearLayout.Моя проблема в том, что я получаю исключение NullPointerException при попытке инициализировать значок удаления, который является ImageView следующим образом из onCreateView фрагмента:

//class field    private ImageView deleteRowIcon;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_choose_players, container, false);

        deleteRowIcon = view.findViewById(R.id.deleteRowIcon);
        return view;
    }

Я прочитал документацию по findViewByIdкласс View и он говорит, что он возвращает ноль, если он не находит никакого представления с этим идентификатором, но тогда, почему я могу даже написать view.findViewById (R.id.deleteRowIcon), не получив предупреждение о том, что этоневозможно?IntelliJ даже дает мне возможность выбора из этого!

...