- Полный список
- Запуск другой Activity — второго окна android-приложения
- В этом уроке
- Вы также должны прочитать
- Ответить на кнопку Отправить
- Создать Intent
- Отправка intent в другие приложения
- Запуск второй Activity
- Создание второй Activity
- Для создания новой Activity в Android Studio:
- Для создания новой Activity в Eclipse:
- How To Add Activity In Android Studio
- 1.How To Create One Activity In Android Studio.
Полный список
В этом уроке мы:
— создадим и вызовем второе Activity в приложении
Урок был обновлен 12.06.2017
Мы подобрались к очень интересной теме. На всех предыдущих уроках мы создавали приложения, которые содержали только один экран (Activity). Но если вы пользуетесь смартфоном с Android, то вы замечали, что экранов в приложении обычно больше. Если рассмотреть, например, почтовое приложение, то в нем есть следующие экраны: список аккаунтов, список писем, просмотр письма, создание письма, настройки и т.д. Пришла и нам пора научиться создавать многоэкранные приложения.
Application/Library name: TwoActivity
Module name: p0211twoactivity
Package name: ru.startandroid.p0211twoactivity
Откроем activity_main.xml и создадим такой экран:
На экране одна кнопка, по нажатию которой будем вызывать второй экран.
Открываем MainActivity.java и пишем код:
Мы определили кнопку btnActTwo и присвоили ей Activity в качестве обработчика. Реализация метода onClick для кнопки пока заполнена частично — определяем, какая кнопка была нажата. Чуть позже здесь мы будем вызывать второй экран. Но сначала этот второй экран надо создать.
Если помните, при создании проекта у нас по умолчанию создается Activity.
От нас требуется только указать имя этого Activity – обычно мы пишем здесь MainActivity. Давайте разбираться, что при этом происходит.
Мы уже знаем, что создается одноименный класс MainActivity.java – который отвечает за поведение Activity. Но, кроме этого, Activity «регистрируется» в системе с помощью манифест-файла — AndroidManifest.xml.
Давайте откроем этот файл:
Нас интересует тег application. В нем мы видим тег activity с атрибутом name = MainActivity. В activity находится тег intent-filter с определенными параметрами. Пока мы не знаем что это и зачем, сейчас нам это не нужно. Забегая вперед, скажу, что android.intent.action.MAIN показывает системе, что Activity является основной и будет первой отображаться при запуске приложения. А android.intent.category.LAUNCHER означает, что приложение будет отображено в общем списке приложений Android.
Т.е. этот манифест-файл — это что-то типа конфигурации. В нем мы можем указать различные параметры отображения и запуска Activity или целого приложения. Если в этом файле не будет информации об Activity, которое вы хотите запустить в приложении, то вы получите ошибку.
Android Studio при создании модуля создала MainActivity и поместила в манифест данные о нем. Если мы надумаем сами создать новое Activity, то студия также предоставит нам визард, который автоматически добавит создаваемое Activity в манифест.
Давайте создадим новое Activity
Жмем правой кнопкой на package ru.startandroid.p0211twoactivity в папке проекта и выбираем New -> Activity -> Empty Activity
В появившемся окне вводим имя класса – ActivityTwo, и layout – activity_two.
Класс ActivityTwo создан.
В setContentView сразу указан layout-файл activty_two.
Он был создан визардом
Откройте activty_two.xml и заполните следующим кодом:
Экран будет отображать TextView с текстом «This is Activity Two».
Сохраните все. Класс ActivityTwo готов, при отображении он выведет на экран то, что мы настроили в layout-файле two.xml.
Давайте снова заглянем в файл манифеста
Появился тег activity с атрибутом name = .ActivityTwo. Этот тег совершенно пустой, без каких либо параметров и настроек. Но даже пустой, он необходим здесь.
Нам осталось вернуться в MainActivity.java и довершить реализацию метода onClick (нажатие кнопки), а именно — прописать вызов ActivityTwo. Открываем MainActivity.java и добавляем строки:
(добавляете только строки 2 и 3)
Обновите импорт, сохраните все и можем всю эту конструкцию запускать. При запуске появляется MainActivity
Нажимаем на кнопку и переходим на ActivityTwo
Код вызова Activity пока не объясняю и теорией не гружу, урок и так получился сложным. Получилось много текста и скриншотов, но на самом деле процедура минутная. Поначалу, возможно, будет непонятно, но постепенно втянемся. Создадим штук 5-6 новых Activity в разных проектах и тема уляжется в голове.
Пока попробуйте несколько раз пройти мысленно эту цепочку действий и усвоить, что для создания Activity необходимо создать класс (который наследует android.app.Activity) и создать соответствующую запись в манифест-файле.
На следующем уроке:
— разбираемся в коде урока 21
— теория по Intent и Intent Filter (не пропустите, тема очень важная)
— немного о Context
Присоединяйтесь к нам в Telegram:
— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование
— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме
Источник
Запуск другой Activity — второго окна android-приложения
В этом уроке
Вы также должны прочитать
После завершения предыдущего урока, у вас есть приложение, которое показывает активити (один экран) с текстовым полем и кнопкой. В этом уроке вы добавим код к MainActivity , который запустит новую активити , когда пользователь нажмет на кнопку Отправить..
Ответить на кнопку Отправить
Чтобы ответить на событие нажатия кнопки, откройте fragment_main.xml файла макета и добавьте android:onClick атрибут к элементу:
android:onClick значение атрибута, «sendMessage» , это имя метода в вашей активити , который система вызывает когда пользователь нажимает кнопку.
Откройте MainActivity класс (расположенный в каталоге проекта src/ ) и добавьте соответствующий метод:
Чтобы система смогла найти этот метод с именем, заданным в android:onClick , сигнатура должна быть именно такой, как вы видели. В частности, метод должен:
- Быть public
- Имейте void в качестве возвращаемого значения
- Иметь View в качестве единственного параметра (это будет View , на котором нажали)
Далее, вы заполните этот метод, чтобы прочитать содержимое текстового поля и доставить этот текст в другую активити .
Создать Intent
Intent это объект, который обеспечивает связывание отдельных компонент во время выполнения (например, двух активити ). Intent представляет «намерение что-то сделать». Вы можете использовать интент для широкого круга задач, но чаще всего они используются, чтобы начать другую активити .
Внутри sendMessage() метода, создайте Intent для запуска активити под названием DisplayMessageActivity :
Для этого требуется импортировать Intent класс:
Полезный совет: В Eclipse, нажмите Ctrl + Shift + O для импортирования недостающих классов (Cmd + Shift + O на Mac). В Android Studio команда для импорта Alt+Enter.
Конструктор, используемый здесь принимает два параметра:
- Context в качестве первого параметра( this используется, поскольку Activity класс является подклассом Context )
- Class компонента приложения, в который система должна доставить Intent (в данном случае активность, которая должна быть запущена)
Отправка intent в другие приложения
Intent, созданный в этом уроке считается явным, поскольку Intent указывает точный компонент приложения, в которое интент следует отправить. Тем не менее, интенты также могут быть неявными, в этом случае Intent не указывает нужный компонент, позволяя любой программе установленной на устройстве отвечать на интенты, пока она удовлетворяет спецификациям мета-данных действия, задаваемыми в различных Intent параметрах. Для получения дополнительной информации читайте курс Взаимодействие с другими приложениями.
Примечание: Ссылка на DisplayMessageActivity вызовет ошибку, если вы используете интегрированную среду разработки, такую как Eclipse например, потому что класс еще не существует. Игнорируйте ошибку на данный момент; вы скоро создадите класс.
Intent не только позволяет начать другую Activity, но также может выполнять связь данных в Activity. В sendMessage() методе, используйте findViewById() для получения EditText элемента и добавьте его текстовое значение в Intent:
Примечание: Вам необходим оператор импорта для android.widget.EditText . Вы определите EXTRA_MESSAGE константу буквально сейчас.
Intent может нести коллекцию различных типов данных в виде пары ключ-значение, называемых Extras. Метод putExtra() принимает имя ключа в первом параметре и значение во втором параметре.
Для того, чтобы Activity смогла запросить дополнительные данные, вы должны определить ключ для дополнений вашего интента, используя общедоступную константу. Так что добавьте EXTRA_MESSAGE определение в начало MainActivity класса:
Вообще это хорошая практика, определять ключи для Intent Extras используя имя пакета вашего приложения в качестве префикса. Это гарантирует, что они уникальны, в случае когда ваше приложение взаимодействует с другими приложениями.
Запуск второй Activity
Для запуска активити, вызовите startActivity() и передайте в него ваш Intent . Система получает этот вызов и запускает экземпляр Activity указанный в Intent .
С помощью этого нового кода, полный sendMessage() метод, который вызывается кнопкой Отправить теперь выглядит следующим образом:
Теперь вам нужно создать DisplayMessageActivity класс для того, чтобы это работало.
Создание второй Activity
Для создания новой Activity в Android Studio:
В главном меню выберите File>New>Activity>Blank Activity.
Заполните поля в окне мастера создания активити:
- Activity Name: DisplayMessageActivity
- Layout Name: activity_display_message
- Title: Моё сообщение
- Hierarchial Parent: com.example.myfirstapp.MainActivity
Остальные поля оставьте по умолчанию. Нажмите Finish.
Для создания новой Activity в Eclipse:
- Нажмите New
на панели инструментов.
- В появившемся окне, откройте Android папку и выберите Android Activity. Нажмите Next.
- Выберите BlankActivity и нажмите Next.
- Заполните информацию о Activity:
- Project: MyFirstApp
- Activity Name: DisplayMessageActivity
- Layout Name: activity_display_message
- Fragment Layout Name: fragment_display_message
- Title: Моё сообщение
- Hierarchial Parent: com.example.myfirstapp.MainActivity
- Navigation Type: None
Нажмите Finish.
Рисунок 1. Мастер новой активити в Eclipse.
Если вы используете инструменты командной строки, создайте новый файл с именем DisplayMessageActivity.java в проекте в src/ каталоге, рядом с оригиналом MainActivity.java файлом.
Откройте DisplayMessageActivity.java файл. Если вы использовали Android Studio или Eclipse для создания этой Activity:
- Класс уже включает в себя реализацию требуемого onCreate() метода. Вы обновите реализацию этого метода позже.
- Есть также реализация onCreateOptionsMenu() метода, но вам это не будет нужно в данном приложении, так что вы можете удалить его.
- Есть также реализация onOptionsItemSelected() , который обрабатывает поведение панели действий для кнопки Вверх . Оставьте его как есть.
- Может быть также PlaceholderFragment класс, который расширяет Fragment . Вам не нужен будет этот класс в окончательном варианте этой активити .
Фрагменты разбивают функциональность приложений и пользовательский интерфейс на модули, которые можно будет повторно использовать. Для более подробной информации о фрагментах см.Руководство по Фрагментам. Окончательный вариант этой активити не использует фрагменты.
Примечание: Ваша активити может выглядеть иначе, если вы не использовали последнюю версию ADT плагина. Убедитесь, что вы установили последнюю версию ADT плагина для завершения этого курса.
DisplayMessageActivity класс должен выглядеть следующим образом:
Источник
How To Add Activity In Android Studio
Activity is a very important component in android application development. It represents a screen which is used to interact with phone user. Commonly there are three important files for creating and use an activity: an XML layout file, a java class file, and AndroidManifest.xml.
- The XML layout file is used to design the app’s UI part. We can think of it as a View role in the MVC design pattern.
- The java file is used to manipulate layout files, listen and process user action, startup other activity to the user when needed. So we can think of it as a Control role in the MVC design pattern.
- AndroidManifest.xml: We config all activities in this XML file. You can also specify activity attributes such as set one activity as android app startup activity in this file.
1.How To Create One Activity In Android Studio.
- First, make sure you have selected the Project view’s Android subview.
- Then right-click the app folder in Android view, click the ” New —> Activity ” menu. There will list some activity template menu, you can select the one you need. In this example, we select the Empty Activity template.
- Then the Configure Activity window will popup. You can input or modify the activity name and layout name as you need. Commonly the layout name is separated by underlines. You can check the Launcher Activity checkbox to make it the android application startup activity.
- Click the Finish button to complete the activity creation process. After that, you can see the three core files in the Project View on the left panel.
- In this example, AndroidManifest.xml is located in the app/manifests folder. ButtonListenerExampleActivity java file is located in app / java folder. activity_button_listener_example.xml is located in the app/res/layout folder.
- Then you can double click the above file to write code in it. If you want to learn more detail about the above three files, you can read the article Android Hello World Example Project File Structure or Android Studio Button Listener Key Listener And Browse Url Example.
This site uses Akismet to reduce spam. Learn how your comment data is processed.
I am not familiar with Android Studio, when I add a new java class in Android Studio, I can not find the method public void onCreate in the new java class source file.
And what I really want is to create an android activity such as the android app main_activity. I can find the super.onCreate(savedInstanceState) method in the main_activity, and it will connect to the layout XML file in this method.
I want to make my new java class behave like the main_activity, how can I do that? Do I need to copy the public void onCreate method to the new java class. Can anyone give me some help? Thanks a lot.
Источник