Бесплатно

Программирование приложений для мобильных устройств под управлением Android. Часть 1

Текст
iOSAndroidWindows Phone
Куда отправить ссылку на приложение?
Не закрывайте это окно, пока не введёте код в мобильном устройстве
ПовторитьСсылка отправлена
Отметить прочитанной
Шрифт:Меньше АаБольше Аа

Один распространенный тип ресурсов – strings (строки). В Android существует три типа строковых ресурсов. Отдельные строки – strings, массивы строк – arrays и формы множественного числа – plurals. Строки и массивы строк довольно понятны, давайте поговорим о plurals. Plurals в основном – это массивы строк, которые могут использоваться, чтобы выбрать определенные строки, связанные с определенной величиной (количеством), например, одна книга или две книги.

Строки обычно хранятся в xml-файлах в каталоге приложения res/values. Строка может включать форматирование и информацию о стилях. Такие вещи, как HTML-теги, например. Основным преимуществом хранения строковых констант в файле ресурсов является простота интернационализации Android-приложений, т. е. их перевод на иностранные языки. Если вы хотите создать приложение, переведенное на несколько разных языков, то рекомендуется выбрать язык по умолчанию – английский и поместить строки на английском языке в xml-файл strings в папку ресурсов, используемую по умолчанию – res/values. А файлы со строками на других языках – в соответствующие папки, например, для русского языка – в res/values-ru, для французского – в res/values-fr, немецкого – в res/values-de и так далее.


Во время компиляции приложения автоматически генерируется класс R.java. Java-код использует R-класс для доступа к ресурсам.

Наконец, другие файлы ресурсов могут ссылаться на строки, которые вы определили как @string/string_name. Вы также можете получить доступ к этим строкам из java-кода, но на этот раз вы делаете это так: R.string.string_name.

Другой вид ресурса – Layout или файл лейаута. Layout-файл определяет на что будет похож пользовательский интерфейс для каждой части (каждого экрана) вашего приложения. Эти файлы так же записаны в xml, несмотря на то, что некоторые инструменты позволяют вам создавать лейаут визуально, вручную, и затем эти инструменты сгенерируют xml для вас.

К примеру, Eclipse создает Layout-файлы в каталоге res/layout вашего приложения. И вы можете получить доступ к Layout в Java как R.layout.layout_name. Так же вы можете получить доступ к Layout в других файлах ресурсов как @layout/layout_name.

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

Давайте рассмотрим файл R.java. Как уже упоминалось, этот файл автоматически сгенерирован Android, таким образом вы не должны изменять его. Файл определяет класс R, и этот класс R содержит другой класс под названием Layout, у которого есть поле под названием Main. И это фактически дает вам ссылку или дескриптор к файлу main.xml.

Есть также класс ID, обеспечивающий дескрипторы для различных лейаутов, текстовых полей, полей редактирования и к кнопкам, определенным в файле main.xml. Если вы вернетесь и посмотрите main.xml-файл, вы увидите, что есть строки, в которых написано «Android: ID». Это – то, откуда эти поля и ID появляются.

И наконец, есть класс String, который обеспечивает дескрипторы для всех строк, о которых мы говорили.

Следующий шаг в разработке приложений – это реализация ваших Java-классов. Это обычно включает в себя написание по крайней мере одной Activity. Точка входа для Activity – метод onCreate. Это – то, где вы будете обычно инициализировать свое приложение.

Давайте рассмотрим метод onCreate немного более детально. В onCreate вы обычно делаете следующие четыре вещи:

• вы восстанавливаете сохраненное состояние приложения;

• вы устанавливаете визуальное представление content view, которое сообщает андроиду, что необходимо вывести на экран в качестве пользовательского интерфейса Activity;

• вы инициализируете определенные элементы пользовательского интерфейса своего Activity;

• и последнее – вы присоединяете код к элементам пользовательского интерфейса так, чтобы определенные действия были выполнены, когда пользователи будут взаимодействовать с этими элементами Activity.

Давайте посмотрим, как эти шаги реализованы в «MapLocation». Исходный код «MapLocation» реализует класс под названием MapLocation, который является подклассом Activity.




На первом шаге onCreate должен вызвать super.onCreate, передав сохраненное состояние в качестве параметра. Это сохраненное состояние (savedInstanceState) – в основном структура данных, содержащая любую информацию, которую Android, возможно, сохранил с прошлого раза, когда эта Activity работала.

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

Затем идет вызов setContentView. В нашем случае для вывода на экран содержимого файла лейаута этого приложения – R.layout.main. После этого идет некоторый код, который устанавливает соответствия отдельных элементов UI с лейаутом. Такие как текстовое поле редактирования, которое сохранено в вызываемой переменной addrText, и кнопка, которая сохранена в переменной button. Как видите, эти ссылки получены вызовом метода activity.findViewById, содержащем в параметре идентификатор желаемого элемента.

И наконец, есть некоторый код, который определяет что сделать, когда пользователь нажимает кнопку Show Map. Этот код реализует интерфейс onClickListener («слушатель» кликов), в котором есть метод onClick, вызывающийся каждый раз, когда пользователь кликает по кнопке. Код в методе onClick сначала считывает текст, который пользователь ввел в поле адреса. Затем он обрабатывает этот текст, чтобы удалить пробелы, и преобразовывает его в формат, который понимает «Google Maps». Затем он запускает приложение «Google Maps» и передает ему этот преобразованный адрес.

Что этот код делает, более подробно мы рассмотрим позже, когда погрузимся в изучение классов Activity и Intent. Также для упрощения я не учел любую проверку на ошибки или проверку строки адреса, которая была введена. Но в конечном коде вы обязательно это сделаете.

Следующим шагом в создании Android-приложений является предоставление информации, которая позволяет Андроиду создать пакет приложения или APK, и эта информация записывается в манифесте – xml-файле androidmanifest.xml. Файл androidmanifest.xml содержит большое разнообразие упаковочной информации, включая имя приложения и список компонентов, которые составляют это приложение. Он также включает другую информацию, которую мы обсудим позже. Это такие вещи как: Permissions (полномочия), которые необходимы, чтобы запустить это приложение, аппаратные функции, такие как камера, если она нужна для работы этого приложения, и самая ранняя версия платформы, на которой это приложение сможет работать. Давайте рассмотрим файл androidmanifest.xml для «MapLocation».

Файл androidmanifest.xml находится в корневом каталоге приложения. Один из элементов, который мы видим здесь, является элементом uses-SDK. Этот элемент включает атрибут minSdkVersion, который определяет минимальный уровень API для этого приложения. И в нашем случае этот уровень равняется 13, что соответствуют Android 3.2.



Этот элемент также включает другой атрибут – targetSdkVersion, который определяет последний уровень API, для которого было протестировано это приложение. В данном случае это уровень 19, что соответствует версии Android 4.4.2.

Купите 3 книги одновременно и выберите четвёртую в подарок!

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

  1. Нажмите на многоточие
    рядом с книгой
  2. Выберите пункт
    «Добавить в корзину»