Очень сложно представить себе аппликацию, которая не требовала бы от пользователя, на каком-нибудь этапе, ввода данных. Для человека, который занимается программированием, тем более — разработкой аппликаций, необходимость в элементах, компонентах для ввода данных пользователем является настолько очевидным фактом, что я просто не вижу совершенно никакой необходимости в том, чтобы объяснять и обосновывать, для чего нужны такие элементы. Именно поэтому сразу перейдем к обсуждению и изучению этих элементов.
Создайте аппликацию, которая принимает от пользователя данные: имя пользователя и год его рождения, после чего сообщает пользователю его возраст. В случае ввода нелогичных данных, аппликация должна сообщать об этом пользователю. Аппликация будет называться Userlnfo001. Прежде всего создаем новую аппликацию, указываем ее имя в соответствии с заданием и выбираем для главной (и, по-прежнему, единственной) активности имя Main.
Теперь примем следующие решения по дизайну активности:
— панель-контейнер сделаем типа LinearLayout, с вертикальным расположением элементов (один под другим), с «центром тяжести» в центре экрана;
— на панели разместим две «наклейки» (TextView), под каждой из которых будут элементы типа «поле ввода данных» (EditText);
— нижним элементом будет «кнопка» (Button), при нажатии на которую будет осуществляться ввод данных, их проверка и показ итогового сообщения.
Элементы типа «поле ввода данных» располагаются в категории Text на панели элементов (компонентов), Palette:
Обратите внимание, что есть полтора десятка разновидностей этого типа элементов! Мы сделаем следующий выбор: первое поле (для имени) выберем подтипа Plain Text, а второе поле, для ввода года рождения, выберем подтипа Number. Компоненты типа «наклейка» и «кнопка» находятся в категории Widgets (TextView и Button).
Только первым делом следует сменить тип панели и установить для смененного типа два дополнительных свойства, ориентацию (вертикально) и «центр тяжести» (по центру экрана):
Теперь добавим элементы в соответствии с макетом и договоренности о типах элементов.
Получится вот такое «дерево компонентов»:
Если у вас идентификаторы, которые Android Studio автоматически присвоила элементам, другие — не обращайте на это никакого внимания, мы все равно будем их менять на «осмысленные». Выберем следующие:
Вместе с заменой идентификаторов, будет правильно заменить и тексты, которые с самого начала будут показаны (или не показаны) на компонентах.
Можно воспользоваться способом, использованным в предыдущей аппликации: напрямую заменить тексты в свойствах элементов. Но мы сделаем это способом, который считается (и по праву является!) более профессиональным: создадим глобальные значения, которые можно будет в дальнейшем, при желании и необходимости, использовать в любых активностях аппликации. Способ этот более длинный, но я рекомендую приучаться к использованию именно его.
В папке res, в подпапке values, откройте файл strings.xml, и внесите в него три новых значения:
После добавления наших двух параметров мы можем в xml-файле активности указать в соответствующем свойстве, что следует использовать именно эти параметры, (в двух элементах типа «наклейка» и «кнопка»).
android:text=»@string/1v_name»
…
android:text=»@string/tv_year»
…
android:text=»@string/btn_go»
В чем, собственно, удобство именно такого способа размещения надписи на элементах? В том, что если ще-то в будущих активностях этой же аппликации мы решим использовать эти надписи, то нам не придется снова набирать их, достаточно будет указать, что надо использовать соответствующие параметры из файла staring.xml, который является общим для всех активностей аппликации, сколько бы их ни было. Кроме того, в будущем мы сможем использовать эти же параметры и в файлах java, а это еще одно преимущество такого способа использования строковых значений.
Можно ли при этом продолжать использовать тот способ, которым мы воспользовались в предыдущей аппликации, то есть вписывать тексты (строковые значения) напрямую и непосредственно в xml-файл, без их фиксации в общем файле strings.xml? Ответ прост: да, конечно. Все зависит от ваших намерений, от привычек работы, от необходимости использовать строковые значения в будущем или от решения не делать этого.
Запустим нашу аппликацию на исполнение. Кстати, а зачем это делать, если, фактически, мы еще ни чего особенного и полезного в ней и не сделали, и даже с дизайном только-только начали работать? Не рано ли?
Ни в коем случае не рано: следует сделать это даже обязательной привычкой! Надо запускать аппликацию после каждого, даже не очень существенного изменения в ней. Это нужно, чтобы убедиться: даже после внесенных изменений аппликация запускается.
Ну, то, что аппликация запускается; это хорошо. Но пока выглядит экран, мягко говоря, коряво. Следует, как минимум:
— увеличить размер шрифта в надписях;
— убрать текст Name в первом элементе «окно ввода данных»;
— установить границы между первой парой элементов и второй, а также между второй парой и «кнопкой»;
— установить размер «кнопки» по размеру надписи.
Рекомендую также установить цвет фона экрана (фон панели-контейнера) и цвет фона в элементах «окно ввода данных» (в большинстве случаев для них рекомендуется использовать белый фон).
Добавить комментарий