Что необходимо сделать при добавлении в проект новой активности

Запуск еще одной activity в android app

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

Чтобы добавить действие при нажатии на кнопку, необходимо для нее указать обработчик события. Обработчик события – это метод, который будет срабатывать при нажатии на кнопку. Есть несколько способов сделать это. Один из них – это указать в xml разметке свойство android:onClick для кнопки. В результате код для кнопки будет следующим:

Что необходимо сделать при добавлении в проект новой активности

Android onClick – обработчик события нажатия на кнопку

Что необходимо сделать при добавлении в проект новой активности

Обработчик события при нажатии на пноку

Отображение всплывающей подсказки при нажатии на кнопку

Чтобы убедиться, что обработчик события срабатывает корректно, добавим в метод sendMessage следующий код:

Что необходимо сделать при добавлении в проект новой активности

Отображение всплывающей подсказки при нажатии на кнопку в android

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

Думаю, Вы уже запустили приложение и убедились в его работоспособности. Если нет, не сдерживайте себя ;). При нажатии на кнопку send Вы увидите заданную строку.

Создание объекта Intent для запуска новой активности

Объект типа Intent – это объект, который позволяет связывать различные компоненты (например, две различные активности). Интент – это описание какого – то действия приложением. Он может быть использован для широкого круга задач, но в большинстве случаев его используют для запуска другой активности (задачи).

Intent intent = new Intent(this, DisplayMessageActivity.class);

Конструктор, которые используется в нашем случае имеет два входных параметра. Первый – Context (Класс Activity наследуется от класса Context, по-этому передаем текущий объект – главную активность). Второй – класс компонент приложения, которому система передаст управление. В нашем случае класс активности, которую необходимо запустить.

После написания этого кода среда разработки выдаст ошибку т.к. класс DisplayMessageActivity не создан. В скором времени мы это исправим.

Intent позволяет не только запустить активность, но и и передать даже некоторые данные в нее. Сделаем это, взяв текст введенный пользователем с поля для ввода. Для этого необходимо получить само поле ввода в коде с помощью метода findViewById():

Что необходимо сделать при добавлении в проект новой активности

Создание intent и запуск новой активности с параметром

В Intent можно поместить множество данных различных типов. Денные хранятся как пара ключ-значение, называемые “extras”. Метод putExtra() принимает два параметра, первый – это ключ, второй – значение.
Чтобы в следующей активности получить данные, необходимо определить ключ как публичную константу (Чтоб доступ к ней был и с отправляющей и принимающей активности). Добавим определение константы EXTRA_MESSAGE в начало класса текущей активности.

Что необходимо сделать при добавлении в проект новой активности

Правильно определять публичные константы для передачи параметров в другие активности и хорошей практикой является именование их с использованием именования пакетов приложения. Это позволяет создавать уникальные ключи, что важно, особенно в случае, если Ваше приложение взаимодействует с другими.

Что необходимо сделать при добавлении в проект новой активности

Android – запуск еще одной активности

Создание второй активности

Заполним информацию о создаваемой активности. Выбираем проект, вводим имя активити (Activity Name: DisplayMessageActivity), имя файла разметки (Layout Name: activity_display_message), заголовок (Title: My Message), Navigation Type: none (оставляем по-умолчанию ). Hierarchial Parent заполнять нет необходимости, нажимаем “Finish“.

Что необходимо сделать при добавлении в проект новой активности

Создание новой activity в android приложении

Если Вы используете другую среду разработки, возможно Вам придется руками создать новый класс (в том же пакете, что и главная активность), и реализовать в нем метод onCreate(). Открыв созданный еклипсой класс, Вы увидите что этот метод уже есть, так же, как и onCreateOptionsMenu(), но сейчас он нам не понадобиться (метод для создания меню мы будем использовать позже), по – этому можно его удалить. В результате активность имеет следующий вид:

Что необходимо сделать при добавлении в проект новой активности

Метод onCreate() новой activity

Все Activity должны содержать метод onCreate(). Он вызывается при создании активности, в нем необходимо определить разметку экрана (используя метод setContentView()) и инициализировать все необходимые компоненты.

Если Вы используете другую среду, у вас нет разметки activity_display_message.xml, которая передается в метод setContentView созданной активности. Это нестрашно т.к. мы изменим метод и она нам не понадобиться.

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

Добавление новой строки в ресурсы

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

Добавление activity в AndroidManifest.xml

В манифесте должны быть задекларированы все активити запускаемые приложением. В результате манифест должен иметь следующий вид:

Что необходимо сделать при добавлении в проект новой активности

Обновленный файл AndroidManifest.xml

Если Вы используете еклипс, можете запустить приложение. При нажатии на кнопку отправить запуститься новая активность с надписью “Hello world!”. Если Вы используете другую среду, не переживайте что приложение до сих пор не компилируется, сейчас все поправим ;).

Прием данных с помощью Intent

В метод onCreate новой активити необходимо добавить следующий код, который получает данные из интента:

Отображение сообщения

Чтобы отобразить сообщение, необходимо создать TextView и используя метод setText() сказать ему какой текст нужно отображать. Далее (в коде! не используя файл разметки) созданный TextView установим как корневой элемент экрана активности. В итоге метод onCreate() получиться вот таким вот:

Что необходимо сделать при добавлении в проект новой активности

Получение данных из Intent и их отображение

Собственно, вот и все! Если Вы следовали описанным действиям, приложение должно работать корректно.

Источник

Запуск другой Activity — второго окна android-приложения

В этом уроке

Вы также должны прочитать

Ответить на кнопку Отправить

Чтобы ответить на событие нажатия кнопки, откройте fragment_main.xml файла макета и добавьте android:onClick атрибут к элементу:

Откройте MainActivity класс (расположенный в каталоге проекта src/ ) и добавьте соответствующий метод:

Создать Intent

Внутри sendMessage() метода, создайте Intent для запуска активити под названием DisplayMessageActivity :

Для этого требуется импортировать Intent класс:

Полезный совет: В Eclipse, нажмите Ctrl + Shift + O для импортирования недостающих классов (Cmd + Shift + O на Mac). В Android Studio команда для импорта Alt+Enter.

Конструктор, используемый здесь принимает два параметра:

Отправка intent в другие приложения

Intent, созданный в этом уроке считается явным, поскольку Intent указывает точный компонент приложения, в которое интент следует отправить. Тем не менее, интенты также могут быть неявными, в этом случае Intent не указывает нужный компонент, позволяя любой программе установленной ​​на устройстве отвечать на интенты, пока она удовлетворяет спецификациям мета-данных действия, задаваемыми в различных Intent параметрах. Для получения дополнительной информации читайте курс Взаимодействие с другими приложениями.

Примечание: Ссылка на DisplayMessageActivity вызовет ошибку, если вы используете интегрированную среду разработки, такую как Eclipse например, потому что класс еще не существует. Игнорируйте ошибку на данный момент; вы скоро создадите класс.

Intent не только позволяет начать другую Activity, но также может выполнять связь данных в Activity. В sendMessage() методе, используйте findViewById() для получения EditText элемента и добавьте его текстовое значение в Intent:

Intent может нести коллекцию различных типов данных в виде пары ключ-значение, называемых Extras. Метод putExtra() принимает имя ключа в первом параметре и значение во втором параметре.

Для того, чтобы Activity смогла запросить дополнительные данные, вы должны определить ключ для дополнений вашего интента, используя общедоступную константу. Так что добавьте EXTRA_MESSAGE определение в начало MainActivity класса:

Вообще это хорошая практика, определять ключи для Intent Extras используя имя пакета вашего приложения в качестве префикса. Это гарантирует, что они уникальны, в случае когда ваше приложение взаимодействует с другими приложениями.

Запуск второй Activity

С помощью этого нового кода, полный sendMessage() метод, который вызывается кнопкой Отправить теперь выглядит следующим образом:

Теперь вам нужно создать DisplayMessageActivity класс для того, чтобы это работало.

Создание второй Activity

Для создания новой Activity в Android Studio:

В главном меню выберите File>New>Activity>Blank Activity.

Заполните поля в окне мастера создания активити:

Остальные поля оставьте по умолчанию. Нажмите Finish.

Для создания новой Activity в Eclipse:

Рисунок 1. Мастер новой активити в Eclipse.

Если вы используете инструменты командной строки, создайте новый файл с именем DisplayMessageActivity.java в проекте в src/ каталоге, рядом с оригиналом MainActivity.java файлом.

Откройте DisplayMessageActivity.java файл. Если вы использовали Android Studio или Eclipse для создания этой Activity:

Фрагменты разбивают функциональность приложений и пользовательский интерфейс на модули, которые можно будет повторно использовать. Для более подробной информации о фрагментах см.Руководство по Фрагментам. Окончательный вариант этой активити не использует фрагменты.

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

DisplayMessageActivity класс должен выглядеть следующим образом:

Источник

ТЕСТЫ по дисциплине «Разработка мобильных приложений»

МДК 01.03 Разработка мобильных приложений

1) Набор средств программирования, который содержит инструменты, необходимые для создания, компиляции и сборки мобильного приложения называется:

2) С какой целью был создан Open Handset Alliance?

А) писать историю развития ОС Android

б) продавать смартфоны под управлением Android

в) рекламировать смартфоны под управлением Android

г) разрабатывать открытые стандарты для мобильных устройств

3) С какой целью инструмент Intel* Graphics Performance Analyzers (Intel* GPA) System Analyzer используется в среде разработки Intel* Beacon Mountain?

а) позволить разработчикам оптимизировать загруженность системы при использовании процедур OpenGL

б) для ускорения работы эмулятора в среде разработки

в) для оптимизированной обработки данных и изображений

г) позволить разработчикам эффективно распараллелить С++ мобильные приложения

3) Библиотеки, реализованные на базе PacketVideo OpenCORE:

А ) Media Framework

4) Какой движок баз данных используется в ОС Android?

5) С какой целью инструмент Intel* Integrated Performance Primitives (Intel* IPP) используется в среде разработки Intel* Beacon Mountain?

А) для оптимизированной обработки данных и изображений

Б) позволить разработчикам оптимизировать загруженность системы при использовании процедур OpenGL

В) для ускорения работы эмулятора в среде разработки

Г) позволить разработчикам эффективно распараллелить С++ мобильные приложения

6) Intel XDK поддерживает разработку под:

Б ) Apple iOS, BlackBerry OS

В ) MtkOS, Symbian OS, Microsoft Windows 8

Г ) Android, Apple iOS, Microsoft Windows 8, Tizen

7) Каждый приемник широковещательных сообщений является наследником класса …

8) Какой класс является основным строительным блоком для компонентов пользовательского интерфейса (UI), определяет прямоугольную область экрана и отвечает за прорисовку и обработку событий?

9) Какой слушатель используется для отслеживания события касания экрана устройства?

10) В какой папке необходимо разместить XML файлы, которые определяют все меню приложения?

А ) res/value
Б ) res/items
В ) res/layout
Г ) res/menu

11) Фоновые приложения …

А) после настройки не предполагают взаимодействия с пользователем, большую часть времени находятся и работают в скрытом состоянии
Б) выполняют свои функции и когда видимы на экране, и когда скрыты другими приложениями
В) небольшие приложения, отображаемые в виде графического объекта на рабочем столе
Г) большую часть времени работают в фоновом режиме, однако допускают взаимодействие с пользователем и после настройки

12) Полный иерархический список обязательных файлов и папок проекта можно увидеть на вкладке …

13) Какой компонент управляет распределенным множеством данных приложения?

А) сервис (Service)
Б)
активность (Activity)
В)
приемник широковещательных сообщений (Broadcast Receiver)
Г)
контент-провайдер (Content Provider)

14) Какой язык разметки используется для описания иерархии компонентов графического пользовательского интерфейса Android-приложения?

15) Выберите верную последовательность действий, необходимых для создания в приложении контент-провайдера.

А) Создание класса наследника от класса ContentProvider; Определение способа организации данных; Заполнение контент-провайдера данными
Б)
Проектирование способа хранения данных; Определение способа организации данных;
В)
Создание класса наследника от класса ContentProvider; Заполнение контент-провайдера данными; Определение способа работы с данными
Г)
Проектирование способа хранения данных; Создание класса-наследника от класса ContentProvider; Определение строки авторизации провайдера, URI для его строк и имен столбцов

16) Выберите верные утверждения относительно объекта-намерения (Intent).

А) представляет собой структуру данных, содержащую описание операции, которая должна быть выполнена, и обычно используется для запуска активности или сервиса
Б)
используется для передачи сообщений пользователю
В)
используется для получения инструкций от пользователя
Г)
используются для передачи сообщений между основными компонентами приложений

17) Расположение элементов мобильного приложения:

А) полезно для передачи иерархии
Б)
влияет на удобство использования
В)
полезно для создания пространственных отношений между объектами на экране и объектами реального мира
Г)
все варианты ответа верны

18) Какие элементы управления применяются для действий по настройке?

А) командные элементы управления
Б)
элементы выбора
В)
элементы ввода
Г)
элементы отображения

19) Примерами комбо-элементов не являются:

А) комбо-список
Б)
все вышеперечисленное
В)
комбо-кнопка
Г)
комбо-поле

20) Дизайн или проектирование интерфейса для графических дизайнеров:

А) все варианты ответа верны
Б)
прозрачность и понятность информации
В)
тон, стиль, композиция, которые являются атрибутами бренда
Г)
передача информации о поведении посредством ожидаемого назначения

21) Более крупные элементы:

А) привлекают больше внимания
Б)
все варианты ответа верны
В)
размер не влияет на уровень внимания
Г)
привлекают меньше внимания

22) К традиционным типографическим инструментам не относят

А) масштаб
Б)
цвет
В)
разреженность
Г)
выравнивание по сетке

23) К элементам ввода относят:

А) ограничивающие элементы ввода
Б)
ползунки
В)
счетчики
Г)
все вышеперечисленное

24) Выделяют следующие категории плотности экрана для Android-устройств:

А) HDPI, XHDPI, XXHDPI, и XXXHDPI
Б)
правильный вариант ответа отсутствует
В)
LDPI, MDPI, HDPI, XHDPI, XXHDPI, и XXXHDPI
Г)
LDPI, MDPI, HDPI

25) Следующие утверждения не верны:

А) не используйте интерфейсные элементы
Б)
картинки работают быстрее, чем слова
В)
на любом шаге должна быть возможность вернуться назад
Г)
если объекты похожи, они должны выполнять сходные действия

26) Следующие утверждения верны:

А) текстура бесполезна для передачи различий или привлечения внимания
Б)
восприятие направления затруднено при больших размерах объектов
В)
все варианты ответа верны
Г)
люди легко воспринимают контрастность

27) Основные вкладки (FixedTabs) удобны при отображении

А) от четырех вкладок
Б)
двух вкладок
В)
трех и более вкладок
Г)
трех и менее вкладок

28) Диалоговое окно, содержащее линейку процесса выполнения какого-то действия — это

29) Уведомления стоит использовать, когда

А) сообщение не требует ответа пользователя, но важно для продолжения его работы
Б)
сообщение является важным и требует немедленного прочтения и ответа
В)
сообщение является важным, однако требует немедленного прочтения, но не ответа
Г)
сообщение является важным, однако не требует немедленного прочтения и ответа

30) Какой метод запускает новую активность?

31) ProgressDialog это:

А) контейнер для создания собственных диалоговых окон
Б)
диалоговое окно с предопределенным интерфейсом, позволяющее выбрать дату или время
В)
диалоговое окно, содержащее линейку процесса выполнения какого-то действия
Г)
диалоговое окно, которое может содержать заголовок, до трех кнопок, список выбираемых значений или настраиваемое содержимое

32) AlertDialog это:

А) контейнер для создания собственных диалоговых окон
Б)
диалоговое окно, содержащее линейку процесса выполнения какого-то действия
В)
диалоговое окно, которое может содержать заголовок, до трех кнопок, список выбираемых значений или настраиваемое содержимое
Г)
диалоговое окно с предопределенным интерфейсом, позволяющее выбрать дату или время

33) Что необходимо сделать при добавлении в проект новой активности?

А) скачать и установить специальный инструмент MultiActivity SDK
Б)
прописать в манифесте информацию о новой активности
В)
создать новый проект
Г)
запустить эмулятор

34) Системы позиционирования смартфона могут включать

А) все перечисленное
Б)
систему GPS
В)
систему ГЛОНАСС
Г)
сигналы WiFi и Bluetooth

35) Какая константа не определена в классе MotionEvent, для обозначения сенсорных событий

36) С какой целью используется метод release() в классах MediaPlayer и MediaRecorder?

А) конец жизненного цикла объекта и освобождение ресурсов
Б)
перевод объекта в ожидающее состояние
В)
обновление объекта и запуск его работы
Г)
создание объекта и запуск его работы

37) К датчикам окружающей среды, встроенным в мобильное устройство относят

А) датчики вектора вращения
Б)
датчики освещенности
В)
акселерометры
Г)
гироскопы

38) Библиотека Universal Image Loader for Android позволяет :

А) парсить HTML-страницы
Б)
строить графики и диаграммы
В)
загружать, кешировать и отображать изображения
Г)
использовать анимацию, доступную только с версии 3.х, на более ранних вариантах платформы Android

39) Facebook SDK for Android — это библиотека, позволяющая:

А) получать доступ к информации любого пользователя
Б)
отправлять рекламные сообщения от имени пользователя
В)
писать сообщения на стену, читать и менять статусы, смотреть ленту друзей
Г)
парсить страницы пользователей

40) Что из перечисленного не относится к правилам безопасности при подключении библиотек?

А) с осторожностью использовать библиотеки из сомнительных источников
Б)
ознакомиться с форумами и сайтами, где могут обсуждаться библиотеки
В)
лично познакомиться с разработчиками библиотеки
Г)
использовать скомпрометированные библиотеки

41) Библиотека MapNavigator предназначена для:

А) работы с любыми картами
Б)
работы с Яндекс.Картами
В)
морской навигации
Г)
работы с картами Google Maps

42) Библиотека jsoup не позволяет:

А) находить и извлекать данные, используя DOM и селекторы CSS
Б)
манипулировать HTML-элементами, атрибутами и текстом
В)
писать сообщения на стену, читать и менять статусы, смотреть ленту друзей
Г)
принимать в качестве параметра URL, файл или строку

43) При настройке обратной совместимости необходимо добавить в файл манифеста следующую информацию:

А) только минимальную версии Android SDK
Б)
минимальную и основную (целевую) версии Android SDK
В)
информацию о подключенной библиотеке
Г)
только основную (целевую) версии Android SDK

44) Какая библиотека предназначена для упрощения загрузки изображений?

А ) Yandex.Metrica for Apps;
Б ) Universal Image Loader for Android
В ) ActionBarSherlock
Г ) NineOldAndroids

45) Библиотеки совместимости предназначены для

А) сбора статистики
Б)
рисования графиков
В)
использования возможностей, появившиеся в какой-то версии ОС Android, на более ранних версиях платформы
Г)
подключения нестандартных элементов управления

46) Какая библиотека предназначена для использования анимации?

А ) Universal Image Loader for Android
Б ) NineOldAndroids
В ) Yandex.Metrica for Apps
Г ) ActionBarSherlock

47) Для чего служит папка res/anim/ проекта?

А) в этой папке находятся файлы, содержащие набор картинок, предназначенных для кадровой анимации
Б)
в этой папке находятся файлы, содержащие анимированные ролики для воспроизведения в приложении
В)
в этой папке находятся XML файлы, задающие реализацию анимации свойств
Г)
в этой папке находятся XML файлы, задающие последовательность инструкций анимации преобразований

48) В какой файл обязательно добавляется информация при создании нового Activity в приложении?

49) Какой метод жизненного цикла активности вызывается системой непосредственно перед появлением активности на экране?

50) С какой целью используется метод SurfaceHolder.lockCanvas()?

А) блокировка Canvas для перерисовки
Б)
игнорирование дальнейшего взаимодействия с Canvas
В)
сокрытие Canvas
Г)
блокировка Canvas от сворачивания

51) Может ли мобильное приложение получить доступ к базе данных, созданной в другом приложении?

А) не может ни при каких обстоятельствах
Б)
может, но только с помощью контент-провайдеров
В)
право на доступ открывает приложение-хозяин базы данных
Г)
может обращаться напрямую

52) С помощью какого метода можно запретить смену ориентации устройства, при запущенном приложении?

А ) setRequestedOrientation
Б ) setChangeOritentation
В ) disableChangeOrientation
Г ) setOritentation

53) Какой из датчиков не используется для определения положения смартфона в пространстве?

54) К новым возможностям HTML5 относят (выберите все верные варианты ответа):

А) возможность добавления аудио и видео без использования вспомогательных средств
Б)
возможность рисования на холсте
В)
возможность прямого доступа к оперативной памяти
Г)
форматирование данных в режиме таблицы

55) Возможен ли перенос приложений iOS* в среду HTML5:

А) нет, прямой перенос приложений невозможен
Б)
да, используя средства Intel XDK
В)
да, используя только сторонние средства
Г)
да, только для iPhone, используя средства Intel XDK

56) Следующие утверждения верны:

А) JavaScript не позволяет подключать другие внешние библиотеки, написанные на других языках
Б)
приложения html5 исполняются быстрее и требуют меньше ресурсов, чем «нативные»
В)
среда Intel XDK не работает с мультисенсорностью
Г)
приложения html5 исполняются медленнее и требуют больших ресурсов, чем «нативные»

57) Разрабатывать приложения в среде Intel XDK можно:

А) пользоваться заготовленными примерами
Б)
все варианты ответа верны
В)
«с нуля», прописывая все элементы
Г)
использовать встроенный «дизайнер элементов» для отрисовки элементов

58) JavaScript не позволяет:

А) получать прямой доступ к памяти
Б)
работать с реестром
В)
работать с картами
Г)
одновременно использовать несколько подключаемых библиотек

59) В среде Intel XDK можно разрабатывать приложения для следующих платформ:

А) Android
Б)
все варианты ответа верны
В)
Apple iOS
Г)
Tizen

60) В заготовке любого приложения, разрабатываемого в среде Intel XDK прописана:

А) все варианты ответа верны
Б)
скрытие окна заставки Intel XDK
В)
настройка размеров приложения под размеры устройства
Г)
фиксация размеров приложения (запрет «скроллинга»)

61) Создавать и редактировать пользовательский интерфейс приложений в среде Intel XDK можно:

А) используя встроенное приложение App Designer
Б)
только изменяя готовые шаблоны с интерфейсом
В)
все варианты ответа неверны
Г)
только прописывая теги вручную

62) Удобное средство обмена между двумя NFC-устройствами:

63) Переключения между активностями осуществляются

А) только при помощи кнопок
Б)
только с использованием сенсорного экрана смартфона
В)
только при помощи кнопок и других элементов управления
Г)
все три варианта возможны

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *