Почему создание экземпляра RecyclerView излишне?

170
02 июля 2018, 19:40

Изучаю в Android RecyclerView, при ,казалось бы ,логическом

RecyclerView myRecycler = new RecyclerView(this);
        myRecycler = findViewById(R.id.myrec);

Появляется предуприжденее

Variable 'myRecycler' initializer 'new RecyclerView(this)' is redundant

На работоспособность не влияет,но хотелось бы понять почему так.

Answer 1

Ранее вы создали для своей активити (фрагмента) xml-разметку, где указано, какие виджеты (классы View и его наследники, как RecyclerView, TextView и тп.) будут использоваться на экране, а так же их свойства (размер, цвет и тп.).

Метод setContentView() активити (или inflate() фрагмента) парсит (инфлейтит) xml-разметку и преобразует декларативный xml-язык разметки в дерево полноценных java-объектов виджетов с указанными свойствами.

метод findViewById() возвращает эти, уже созданные по описнию в разметке, java-объекты по идентификатору, назначеному в той же разметке, поэтому програмное создание этого объекта и не требуется, он уже создан ранее.

Это, естественно, относится ко всем виджетам, объявленым в разметке, а не только к RecyclerView

READ ALSO
Сохранение поведения во вложенных Map

Сохранение поведения во вложенных Map

Делаю игру для учебного проектаНа этапе инициализации у меня будет несколько вариантов выбора: первый boolean мод разработчика, вторым будет...

192
Digital Asset Links file not found

Digital Asset Links file not found

Я хочу сделать имплементацию диплинк

175
Неправильное поведение программы (Java)

Неправильное поведение программы (Java)

Описание проблемы скорее будет понятнее представленным кодом:

173