Статьи

Узнайте Java для Android Challenge: итерация

Вы читали о том, как работает итерация в Java . Проверьте свои новые навыки с помощью этой задачи: пять прогрессивно сложных упражнений, которые помогут вам закрепить свои знания языка программирования Java и разработки Android. Это верно, Android тоже! Возможно, вам придется обратиться к другим учебным пособиям по Android, которые мы опубликовали на Mobiletuts +, но если вы успешно справитесь с этой задачей, вы поймете, что хорошо продвигаетесь в понимании Java и Android SDK.

Чтобы подготовиться к этому испытанию, вам нужно начать с базового приложения для Android. Просто создайте приложение Android в Eclipse и отредактируйте его Activity по умолчанию, в частности метод onCreate (), чтобы протестировать код для каждой из этих задач.

Если то, что мы только что о вас попросили, уже слишком сложно, мы рекомендуем сделать шаг назад. Начните с некоторых учебных пособий по Android, таких как Введение в разработку Android или Начало Android: Начало работы с Fortune Crunch . После того, как вы освоили настройку проекта Android, вернитесь и попробуйте эти упражнения.

Сначала мы рассмотрели возможность использования простого строкового массива для выполнения следующих задач итерации:

Тем не менее, есть гораздо лучший способ хранить фиксированные массивы значений в Android: как ресурсы. Чтобы создать ресурс строкового массива, вы должны сначала создать ресурсы String для каждого значения. Затем создайте ресурс String Array, используя эти ресурсы String в качестве элементов. Используйте тег <string-array> для объединения ресурсов String в ресурс массива, используя дочерние теги <item> для каждого элемента. Например, вот массив цветов в файле ресурсов Android:

1
<?xml version=»1.0″ encoding=»utf-8″?> <resources> <string name=»red»>Red</string> <string name=»orange»>Orange</string> <string name=»yellow»>Yellow</string> <string name=»green»>Green</string> <string name=»blue»>Blue</string> <string name=»indigo»>Indigo</string> <string name=»violet»>Violet</string> <string-array name=»colorsArray»> <item>@string/red</item> <item>@string/orange</item> <item>@string/yellow</item> <item>@string/green</item> <item>@string/blue</item> <item>@string/indigo</item> <item>@string/violet</item> </string-array> </resources>

Чтобы загрузить этот ресурс массива в свой класс Activity, используйте метод getStringArray () объекта Resources. Например:

Теперь вы готовы начать. Загрузите массив строк из ресурсов, как описано выше. Затем выполните итерацию содержимого массива с помощью цикла for (). Напечатайте каждую строку в журнал отладки Android LogCat, используя метод Log.v ().

Дополнительные баллы, если вы используете сокращенную версию цикла for (), обсуждаемую в разделе Изучение Java для разработки под Android: работа с массивами .

Найдите ответ на этот вызов в методе challengeOne () загружаемого проекта.

Итерируйте тот же массив, что и в Задаче № 1, но используйте другой механизм итерации. Например, вместо этого используйте цикл while (). Напечатайте каждую строку в журнал отладки Android LogCat, используя метод Log.v ().

Найдите ответ на этот вопрос в методе challengeTwo () загружаемого проекта.

Итерируйте тот же массив в обратном направлении. Напечатайте каждую строку в журнал отладки Android LogCat, используя метод Log.v ().

СОВЕТ: Задача № 2 может помочь.

Найдите ответ на этот вопрос в методе challengeThree () загружаемого проекта.

Затем вернитесь к циклу for (), который вы создали в Задаче № 1. Обновите его, чтобы распечатать отдельные символы каждой строки. Эта задача потребует внутреннего цикла for ().

СОВЕТ: Вы можете использовать метод toCharArray () класса String для получения массива символов.

Ответ на этот вызов находится в методе challengeFour () загружаемого проекта.

Для этой последней задачи вам понадобится немного понимания Java-рефлексии. Используйте отражение, чтобы перебрать объявленные поля в классе android.os.Build с помощью цикла for (). Напечатайте каждое имя поля в журнал отладки Android LogCat, используя метод Log.v ().

СОВЕТ: Наш краткий учебник по рефлексии Java научит вас всему, что вам нужно знать для выполнения этой задачи.

Мы предоставили два разных решения для этой задачи. Первое решение предполагает, что пакет импортирован, и компилятор знает о классе. Второе решение не делает этого предположения. Эти решения находятся в методах challengeFiveA () и challengeFiveB () загружаемого проекта.

Разработчики Android регулярно используют методы итераций для решения проблем кодирования. Итерация часто используется для итерации массивов, структур данных, таких как списки, или содержимого базы данных с использованием курсоров. Не стесняйтесь размещать альтернативные ответы (или любые вопросы) в разделе комментариев.

Удачи!