Первая модификация приложения — сбор событий и данных. - Технологии
перейти к содержанию

Первая модификация приложения — захват событий и данных.

Объявления

В записи о создании первого проекта на Android мы увидели, как создать наше базовое приложение, мы рассмотрели структуру проекта и различные концепции, такие как SDK, Manifest и действия и их жизненный цикл, теперь мы продолжим модифицировать текущий проект. чтобы углубиться в создание приложений.

 

Как уже упоминалось, мы собираемся изменить приложение, созданное в этой записи, где мы создали первый проект Android, мы останемся на этом экране.

там мы видим, что приложение по умолчанию создает компонент TextView с текстом «Hello World» из разделенного представления. (Если на данный момент вы не знаете, как создать приложение, я рекомендую вам просмотреть запись, упомянутую выше.)

находясь здесь, мы собираемся изменить этот вид, добавив новые компоненты, если затем мы перейдем к представлению дизайна, мы можем изменить экран по своему вкусу, в этом случае мы собираемся создать следующий интерфейс.

Как мы видим, мы добавили компонент PlainText, который фактически соответствует полю редактирования или может иметь такие свойства, как обычный текст, пароль, телефон, почта и другие, точно так же, как определенный макет позволяет нам изменять размер компоненты и назначить относительную позицию, в этом случае текстовое поле имеет позицию относительно textView заголовка.

Если мы перейдем к представлению Split, мы увидим сгенерированный xml-код, и отсюда мы можем изменить свойства вручную, в этом случае мы добавили цвет к заголовку и размер 25sp, обратите внимание, что каждый компонент имеет свойство id , а также свойства для управления размещением компонента на экране.

 

Мы нашли другие компоненты, такие как кончик что соответствует местохолдер который отображается, пока поле пусто, другие свойства могут быть добавлены таким же образом, чтобы стилизовать компонент.

 

Теперь добавляется компонент типа который также имеет свойство id, относящееся к компоненту текстового поля, в этом случае мы изменяем идентификатор.

Логика приложения.

 

Для проведения логической и информационной обработки переходим в класс MainActivity.kt, оттуда методом findViewById() получаем графические компоненты по их id.

 

Мы добавили событие нажатия кнопки и создали функцию onClick() (может быть вызвана любым способом).

 

В этой функции добавлена логика для захвата значения текстового поля, на которое ссылаются так же, как на кнопку, но в данном случае создается компонент типа EditText, который ссылается на идентификатор текстового поля.

 

Впоследствии значение поля получается и добавляется к переменной String, которая затем представляется в компоненте типа Toast, который позволяет отображать временное сообщение на экране.

 

Когда мы запускаем приложение, запускается эмулятор и мы можем протестировать систему, добавив имя пользователя и нажав кнопку «ввод», мы видим, как отображается Toast, который длится несколько секунд.


После этого модифицируем экран, добавив еще один компонент TextView без текста, который будет служить для отображения информации набранного имени, но теперь прямо на экране.

Чтобы реализовать эту логику, мы возвращаемся к классу MainActivity.kt и в функции ссылаемся на компонент EditText с назначенным идентификатором, а затем отправляем сообщение, которое хотим отобразить.

 

Позже снова запускаем приложение и получаем следующий результат.


 

Другая альтернатива захвату данных — объявить компоненты глобально, что позволяет избежать их объявления в каждой функции:


Важно использовать!! чтобы у вас не было нулевых ссылок.

 

Наблюдение:

 

В строках 11 и 12 используется nullsafety, это фича kotlin, которая позволяет контролировать нулевые значения внутри приложения, предотвращая загрузку популярного NullPointerException, мы не можем присваивать нулевые значения напрямую, но таким образом, когда мы указываем EditText? мы сообщаем компилятору, что это поле может иметь нулевую ссылку и разрешить его обработку.

 

в строках 26 и 27 используйте !! указать компилятору не проверять, является ли значение нулевым, и поэтому он может компилироваться без проблем, но если оно равно нулю, выдать исключение в консоли, на случай, если мы знаем, что может прийти нулевое значение, и мы все еще хотим обработать

 

Еще одна рекомендуемая альтернатива - безопасные вызовы, поэтому при попытке вызвать объект, если он имеет значение null, исключение не будет выдано, но значение null будет сохранено без завершения процесса, поэтому переменная должна быть обнуляемой. чтобы он правильно скомпилировался.

 

И все, с этим у нас есть наше первое функциональное приложение с захватом данных и событиями кнопок.

 

Это также может вас заинтересовать.





Есть ли что-нибудь, что вы хотите добавить или прокомментировать по поводу этой записи? смело делайте….И если вам понравилось... Я приглашаю вас поделиться Д Подпишитесь, нажав кнопку «Присоединиться к этому сайту», чтобы получать больше подобных сообщений. 😉