Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
12.3.2010, 21:22
Сообщение
#1
|
|
![]() Администратор ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 63 Регистрация: 24.10.2008 Из: Донецк Пользователь №: 1 |
Статья написана Yusalex
Программирование всегда проще изучать на конкретных примерах, так было со всеми языками и со всеми платформами и Android в этом плане не исключение. Мы начинаем цикл статей по программированию под Android. В разработке мною использована версия Android 2.1, последняя доступная на момент начала написания статей и JDK 1.6. В каждой статье будут рассмотрены различные возможности программирования и реализованы в коде составные части приложения, о котором мы поговорим немного позже. Первая статья будет посвящена созданию меню. Условно разделим ее на две части, первая – создание меню из XML структуры (которое вызывается путем нажатия кнопки «Меню» на устройстве), и вторая часть – создание контекстного меню вызываемого при нажатии и удержании на произвольных элементах интерфейса пользователя, на Java. Теперь немного о приложении, составные части которого, мы будем рассматривать в наших уроках. Мы создадим программу чтения адаптированных по методу Франка иностранных текстов с возможностями сохранения слов для последующего заучивания и прослушивания этих слов или предложений целиком. Далее постараемся улучшить программу, сделать ее максимально удобной для использования. В качестве IDE в отличие от традиционного Eclipse я избрал IntellijIDEA последнюю доступную на сайте с пробным периодом месяц. Можно воспользоваться более ранней из доступных, инсталлировав плагин под Android если его там нет. Тут дело вкуса. Если вы уже знакомы и работаете с Эклипсом, продолжайте это делать, проекты с исходным кодом я буду экспортировать под Eclipse. Предполагается, что вы знакомы с настройкой Android SDK и как минимум написали программу "Hello World", если нет, то можно начать со статьи http://googlephones.ru/forum/index.php?showtopic=6 Создаем проект в IDEA через меню File-> New Project… выбираем модуль Android Module, каталог хранения проекта, название.
image002.jpg ( 34.49 килобайт )
Кол-во скачиваний: 107После чего жмем кнопку Next> и переходим к настройкам собственно приложения и выбору Android SDK (если ранее SDK не был настроен, то можно провести настройки на этом этапе). Указываем имя приложения, пакет приложения и выбираем создание простого проекта “Hello World” с указанием имени Activity, в нашем случае – это MainActivity.
image004.jpg ( 28.83 килобайт )
Кол-во скачиваний: 61После нажатия кнопки Finish, IDE создаст проект и структуру каталогов под него. Теперь напишем меню из XML структуры. На каталоге res путем нажатия правой кнопки мыши выбираем создание файла ресурса под Андроид.
image006.jpg ( 49.48 килобайт )
Кол-во скачиваний: 85Выбираем тип Menu и даем имя файла, в нашем случае menu, жмем OK.
image008.jpg ( 7.3 килобайт )
Кол-во скачиваний: 54IDEA создает подкаталог menu в каталоге res и файл menu.xml в котором мы будем описывать наше меню. Откроем для редактирования файл menu.xml и создадим два пункта меню внутри тегов menu: Здесь мы создали пункты меню, указали их id, надпись, позицию среди прочих элементов меню внутри категории и в первом случае назначили пункту меню рисунок. Существует большое количество свойств, которые можно задать пунктам меню и которые IDEA предлагает на выбор через нажатие Ctrl+Space, вот некоторые из них:
image010.jpg ( 14.97 килобайт )
Кол-во скачиваний: 66alphabeticShortcut – алфавитный ярлык, символ по нажатию которого на клавиатуре вызывается данный пункт меню; checkable – возможность нахождения данного пункта меню в двух положениях «нажатого» и «не нажатого»; checked – задает по умолчанию для меню с checkable=true выбран этот пункт или нет. Например если мы внесем такой код в xml описания меню: В результате получим следующее:
image012.jpg ( 3.98 килобайт )
Кол-во скачиваний: 62icon – предоставляет возможность задать пункту меню картинку и т.д. Надо помнить, что файлов описания меню, может быть несколько. По сути для каждого окна или каждой функции мы можем создать свое меню в отдельном файле и потом обращаться по их id внутри программы. Далее необходимо в активности MainActivity переопределить следующий метод onCreateOptionsMenu: После этого можно запускать приложение
image014.jpg ( 1.66 килобайт )
Кол-во скачиваний: 37, или, если это необходимо, настроить запуск приложения:
image016.jpg ( 9.42 килобайт )
Кол-во скачиваний: 38В нашем случае – это выглядит так:
image018.jpg ( 31.17 килобайт )
Кол-во скачиваний: 35Теперь наше меню вызывается путем нажатия кнопки Menu на устройстве и выглядит так:
image020.jpg ( 21.08 килобайт )
Кол-во скачиваний: 89Давайте научимся обрабатывать события нажатия на пункты меню. Для этого необходимо переопределить метод onOptionsItemSelected: Здесь мы оператором switch выясняем, на какой пункт меню нажал пользователь и производим соответствующие действия. В нашем случае, мы выводим сообщение. Переходим ко второй части нашей статьи, написанию контекстного меню. Это меню мы не будем писать с использованием XML структуры, а создадим его на чистой Java. Для этого переопределим метод onCreateContextMenu: И добавим в метод onCreate вызов метода registerForContextMenu куда передадим элемент для которого регистрируем контекстное меню, в нашем случае это: Осталось только присвоить нашему TextView соответствующее id в файле main.xml: Запускаем приложение и нажимаем на надпись “Hello World…”, результат на следующем рисунке.
image022.jpg ( 17.1 килобайт )
Кол-во скачиваний: 86Совместно мы создали простые меню двух типов и рассмотрели основные возможности работы с меню. Следующим шагом будет создание меню, которое нужно нам в нашем приложении. Здесь мы подробно не касались таких возможностей как группировка пунктов меню аналогично выбору из списка радио кнопок; создание подменю; назначение пунктам меню горячих клавиш; вызов интентов (Intents) и некоторые другие возможности. По мере необходимости мы будем задействовать эти возможности. |
|
|
|
15.3.2010, 15:09
Сообщение
#2
|
|
|
Новичок ![]() Группа: Пользователи Сообщений: 3 Регистрация: 20.1.2010 Пользователь №: 319 |
Всё посмотрел. Всё понятно (более-менее). Для полноты картины не хватает примера урока в виде архива проекта приложить
Может ещё кусок, который не относится к самому примеру (лирическое отступление про меню с чек-боксами) как-то отделить от основного текста? В конце привести целиком код MainActivity, main.xml ??? |
|
|
|
16.3.2010, 0:56
Сообщение
#3
|
|
![]() Администратор ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 63 Регистрация: 24.10.2008 Из: Донецк Пользователь №: 1 |
Ок учтем)
|
|
|
|
18.3.2010, 16:55
Сообщение
#4
|
|
|
Новичок ![]() Группа: Пользователи Сообщений: 6 Регистрация: 6.1.2010 Пользователь №: 309 |
Видимо описано было не все подробно. Т.к. у меня не выводятся на эмуляторе подобные строки с пунктами.
Если не сложно можно немножко подробнее. спс |
|
|
|
![]() ![]() ![]() |
| Текстовая версия | Сейчас: 8.9.2010, 11:25 |