Слайд 2AlertDialog
Используется класс AlertDialog.Builder. Мы указываем заголовок, текст сообщения, иконку и кнопки.
![AlertDialog Используется класс AlertDialog.Builder. Мы указываем заголовок, текст сообщения, иконку и кнопки.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-1.jpg)
Диалог может содержать максимум три кнопки ответа: положительная, отрицательная и нейтральная. Для каждой указываем текст и обработчик. Метод create создает диалог и мы его возвращаем (return).
Обработчик кнопок myClickListener реализует интерфейс DialogInterface.OnClickListener и в нашем случае является общим для всех кнопок. В нем мы проверяем, какая кнопка была нажата:
если положительная (BUTTON_POSITIVE), то сохраняем данные и закрываем приложение
если отрицательная (BUTTON_NEGATIVE), то закрываем приложение без сохранения
если нейтральная (BUTTON_NEUTRAL), то не делаем ничего
Слайд 3Файлы
Разработать программу, которая будет оценивать 20 учеников по 4 предметам . После
![Файлы Разработать программу, которая будет оценивать 20 учеников по 4 предметам .](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-2.jpg)
выставления оценок, программа будет выводить их на экран, а затем выполнять операцию записи оценок в файл.
В программе будут две активности, первая основная отображает список учеников и их оценки, во второй – есть возможность редактирования и сохранения.
Создадим:
а) внутренний файл для записи и чтения
б) внутренний файл только для чтения
Слайд 8Пример работы с базой данных
4 активности приложения:
В 1-й активности пользователь выбирает
![Пример работы с базой данных 4 активности приложения: В 1-й активности пользователь](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-7.jpg)
хочет ли пройти регистрацию или идентификацию
Во 2-й активности он получает возможность зарегистрироваться
В 3-й активности он получает возможность идентифицироваться
В 4-ю он переходит из второй или третьей после успешного завершения действия в ней.
Слайд 18RecyclerView, CardView, ViewHolder
Приложение «Заметки»
Заголовок заметки
Текст, что нужно сделать и день недели, когда
![RecyclerView, CardView, ViewHolder Приложение «Заметки» Заголовок заметки Текст, что нужно сделать и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-17.jpg)
сделать.
Если приоритет высокий, то красный цвет.
Если приоритет низкий, то цвет зеленый.
Также есть возможность добавить заметки.
Слайд 19Внутренние файлы
Доступ возможен из той аппликации для которой и в которой они
![Внутренние файлы Доступ возможен из той аппликации для которой и в которой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-18.jpg)
созданы
Они хранятся в папке связанной с пакетом самой аппликации
Внутренние файлы только для чтения
Они находятся в папке res/raw. Они закрыты для записи.
Являются частью аппликации.
Внешние открытые файлы на карте памяти
Они доступны всем и всегда. Открыты для чтения и записи.
Внешние файлы вне аппарата
Слайд 20RecyclerView, CardView, ViewHolder
Приложение «Заметки»
Создаем макет, который будет содержать одну заметку
Добавляем RecycleView и
![RecyclerView, CardView, ViewHolder Приложение «Заметки» Создаем макет, который будет содержать одну заметку](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-19.jpg)
размещаем его по центру
В RecyclreView выводим список всех заметок. Чтобы соединить эти два элеиента надо создать адаптер.
В памяти будут храниться только те элементы, которые видны на экране и пара сверху и снизу и будут подгружаться при проктрутке. Иначе придеться вызывать findViewById при добавлении нового элемента, что медленно
Слайд 21RecyclerView, CardView, ViewHolder
Приложение «Заметки»
При прокрутке получаем уже созданный элемент.
В этом методе макет
![RecyclerView, CardView, ViewHolder Приложение «Заметки» При прокрутке получаем уже созданный элемент. В](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1000865/slide-20.jpg)
который создавали и передать в качестве аргумента