В этом видео мы разберем, как работать со списками. Причем, я разбил план на несколько пунктов и их видно на экране. Во-первых, мы добавим фрагмент recyclerViev, дальше создадим адаптер, холдер для хранения данных и генератор заглушечных данных. Дальше, мы добавим обновление данных по swipe to refresh и состоянию ошибки. После этого сделаем загрузку данных из телефонной книги, добавим обработку нажатие. Допустим, звонок по контакту. И добавим декораторы. Что же, начнем. Для начала щелкаем на Java и создаем новый java class и назовем его recyclerFragment, создаем фрагмент. Superclass фрагмент из библиотеки поддержки. Щелкаем ok. Теперь определяем onCreateView, onCreateView. Возвращаем return, Inflater, Inflater(R, loyout.fr), префикс для фрагмента recycler, контейнер, запятая false. Layout такого у нас нет. Давайте создадим. Alt+Enter. Create layout resource file, Enter. Корневой элемент LinearLayout, щелкаем ok. Теперь нам нужно добавить сюда recycler и самый простой способ, это перейти во вкладку дизайн, найти recycler среди компонентов в палитре и просто перетащить. Студия спросит стоит ли качать, щелкаем ok. Сейчас в Gradle добавилась зависимость с recycler, можем уже проверить. Build Gradle уровня up. Видим, implementation, com.android.support: recyclerview, ok, возвращаемся в recyclerFragment, ошибки больше нет. Возвращаемся во фрагмент recycler, открываем текст, видим recyclerview. Размеры нас устраивает, нам нужно только добавить id для этого элемента - recycler, и все. Так, возвращаемся в recyclerFragment, ok. Теперь нам неплохо было бы добавить переменную для этого recycler. Предопределяем метод onVC. И здесь пишем recyclerview, recycler равен view find you by id R.id.recycler точка c запятой. Наводимся на переменную recycler, зажимаем Command+Alt+F ну или Ctrl+Alt+F, если у вас Windows. Это приведёт к тому, что создастся поле с этой переменной. То есть, вместо локальной переменной, у нас теперь переменная поля. Ok. Теперь. Теперь у нас есть фрагмент, но неплохо было бы его добавить в activity. Создадим метод newInstance() для фрагмента newInstance(). Enter. Переменные нам не нужны, просто возвращаем new RecyclerFragment(). Все. Переходим в main activity и в методом create прописываем getSupportFragmentManager().beginTransaction().Replace(R.id.conteiner RecycleFragmentnewInstance()); commit(). У нас нет контейнера. Так давайте его добавим. Переходим в activity main, удаляем ConstarainLayout, вместо него у нас будет LinearLayout, OrientationVertical удаляем текст view, вместо неё добавляем FrameLayout, match_parent, match_parent id container. Переходим в main activity и видим, что ошибка исчезла. Дальше, что мы можем сделать. Так как после переворота, переворота экрана state фрагментов сохраняется, мы добавляем фрагмент только в случае, если savedInstantState не равен нулю. Точнее наоборот, равен нулю. Это первое создание экрана. Иначе, фрагмент сам добавится. Так, можем попробовать запустить. Сейчас в эмуляторе у меня старая разметка с text view hello world, но по идее, после перезапуска, я должен стать обладателем пустого экрана, если всё пошло как надо. Ну да, пустой экран готов. Дальше, я думаю, что с первым пунктом мы разобрались. Теперь, нам нужно добавить адаптер, холдер и генератор запущенных данных, этим мы займемся в следующем уроке.