Скачиваний:
16
Добавлен:
17.06.2023
Размер:
2.04 Mб
Скачать

Содержание проекта.

Проект состоит из нескольких папок и файлов. Основные из них:

src – исходный код на Java. Здесь находится основной файл для работы. Здесь же будут находиться новые классы

gen – файлы сгенерированные самой Java

res – файлы ресурсов. Содержит несколько подкаталогов

res/drawable-*dpi — в этих пяти папках содержатся ресурсы, предназначенные для разных расширений экрана. Если зайти в каждую папку, то можно найти там файл ic_launcher.png, который является значком вашего приложения. В папке drawable-ldpi ничего нет, так как это папка для старых телефонов, которые уже не стоит поддерживать.

res/layout — в данной папке содержатся xml-файлы, описывающие внешний вид форм и различных элементов форм. После создания проекта там уже имеются файлы activity_main.xml и fragment_main.xml.

res/menu - здесь находятся ресурсы для меню

res/values — тут у нас располагаются какие-либо строковые ресурсы, ресурсы цветов, тем, стилей и измерений, которые мы можем использовать в нашем проекте. Также есть схожие с ним папки values-w820dp, values-v11 (для планшетов Android 3.0), values-14 (для Android 4) предназначенные для определенных видов устройств

AndroidManifest.xml — файл-манифест с основными свойствами проекта. В них в частности прописываются разрещения на использование Интернета.

Gen.

Служебный каталог «gen» в Android-проекте содержит генерированные значения. В частности, файл R.java — генерированный класс, который содержит ссылки на ресурсы из папки «res» проекта. Эти ресурсы содержатся в директории «res» и могут быть XML-файлами, значениями, меню, схемами, значками, рисунками или анимациями.

Если вы создаете новые ресурсы, то соответствующие ссылки будут автоматически созданы в «R.java». Ссылки являются статичными значениями-интервалами, система Android предоставляет методы доступа к соответствующим ресурсам. Например, для доступа к строке с идентификатором ссылки «R.string.yourString» используйте метод getString(R.string.yourString). Не пытайтесь вручную изменять файл «R.java», так как он всё равно будет перезаписан компилятором.

Работа с проектом - Здравствуй, Мир! (Hello world)

Как уже говорилось, программа Hello, World! уже встроена в любой новый проект, поэтому вам даже не нужно ничего писать. Просто нужно запустить проект и получить готовую программу!

Раскройте папку src и подпапку ru.alexanderklimov.helloworld, которая является именем вашего пакета (у вас будет своя подпапка), чтобы увидеть файл MainActivity.java. Дважды щёлкните на файле, чтобы открыть его в редакторе кода. В файле MainActivity.java уже есть минимальный код, сгенерированный средой разработки.

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

Посмотрим на код (для варианта с поддержкой API 8). Рисунок 1.

Несколько слов о коде, который мы видим. Перед вами открыт файл класса, где имя класса MainActivity совпадает с именем файла с расширением java (это правило, установленное языком Java). В первой строке идет название пакета - его мы задавали при создании проекта (Package Name). Далее идут строки импорта необходимых классов для проекта. Если слева от названий классов есть предупреждающие значки, то прочитайте сообщения, которые появляются при подведении к ним курсора. Например, если вы видите жёлтые треугольники с восклицательным знаком и сообщением, что данный класс нигде не используется, то можете спокойно удалить лишние строки.

Далее идёт объявление самого класса, который наследуется (extends) от абстрактного класса ActionBarActivity. В самом классе мы видим метод onCreate() – он вызывается, когда приложение создаёт и отображает разметку активности. Разберём код метода.

Строка super.onCreate(savedInstanceState); – это конструктор родительского класса, выполняющий необходимые операции для работы активности. Эту строчку вам не придётся трогать, оставляйте её без изменений.

Вторая строчка setContentView(R.layout.activity_main); представляет больший интерес. Метод setContentView(int)подключает содержимое из файла разметки. В качестве аргумента мы указываем имя файла без расширения из папкиres/layout/. По умолчанию проект создаёт в нём файл activity_main.xml.

Рисунок 1.

Вы можете переименовать файл или создать свой файл с именем activity_cat.xml, тогда код будет выглядеть так:

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

Если ваше приложение будет состоять из множества экранов, то вы будете создавать для каждого экрана свою разметку и подключать её описанным выше образом.

Далее происходит динамическая загрузка фрагмента. Это новшество появилось в шаблоне весной 2014 года и является попыткой Google заставить программистов активнее использовать фрагменты в проектах.

После метода onCreate() идут методы onCreateOptionsMenu() и onOptionsItemSelected(), связанные с обработкой меню.

И, наконец, в конце имеется внутренний статический класс фрагмента PlaceholderFragment.

Теперь сравним этот код с кодом для проекта, в котором я выбрал минимальной версией Android 4. Рисунок 2.

Рисунок 2.

Код практически идентичен. Но имеются различия. Часть из них вы заметите сразу, а часть вы не увидите по незнанию. Итак, во втором примере наша активность MainActivity наследуется от класса Activity вместо ActionBarActivity. Также, в методе onCreate() вы увидите метод getFragmentManager() вместо getSupportFragmentManager(). Это то, что видно невооружённым глазом.

В строчке public static class PlaceholderFragment extends Fragment подведите курсор к последнему слову и дождитесь всплывающей подсказки. В первом примере вы увидите android.support.v4.app.Fragment, во втором -android.app.Fragment.

Как я уже говорил выше, для поддержки фрагментов для старых устройств была написана специальная библиотека, которая позволяет использовать новые возможности в старых программах. И тут вам надо определиться. Если вы решили писать программы для старых и новых устройств, то используйте вариант с библиотекой. Причём, смешивать фрагменты из библиотеки поддержки и фрагменты, встроенные в систему, нельзя. Поэтому всегда обращайте внимание на имена пакетов, если там есть слово support, значит класс относится к библиотеке.

Проверим работу приложения. Для этого попробуем запустить проект.