Как сделать переход между activity в android studio
В прошлых темах мы рассмотрели жизненный цикл activity и запуск новых activity с помощью объекта Intent. Теперь рассмотрим некоторые особенности взаимодействия между activity в одном приложении. Допустим, у нас есть три activity: MainActivity, SecondActivity и ThirdActivity.

С помощью Intent, например, по нажатию кнопки MainActivity запускает SecondActivity:
Intent intent = new Intent(this, SecondActivity.class); startActivity(intent);
На SecondActivity тоже есть кнопка, которая запускает ThirdActivity:
Intent intent = new Intent(this, ThirdActivity.class); startActivity(intent);
На ThirdActivity также есть кнопка, которая возвращается к первой activity — MainActivity:
Intent intent = new Intent(this, MainActivity.class); startActivity(intent);

Если мы последовательно запустим все activity: из главной MainActivity запустим SecondActivity, из SecondActivity — ThirdActivity, то в итоге у нас сложится следующий стек activity:
| ThirdActivity |
| SecondActivity |
| MainActivity |
Если после этого из ThirdActivity мы захотим обратиться к MainActivity, то метод startActivity() запустит новый объект MainActivity (а не вернется к уже существующему), и стек уже будет выглядеть следующим образом:
| MainActivity |
| ThirdActivity |
| SecondActivity |
| MainActivity |
То есть у нас будут две независимые копии MainActivity. Такое положение нежелательно, если мы просто хотим перейти к существующей. И этот момент надо учитывать.
Если мы нажмем на кнопку Back (Назад) , то текущая activity, которая находится на вершине стека, удаляется из стека, и предыдущая activity оказывается на вершине стека и возобновляет свою работу. И таким образом с помощью кнопки Back (Назад) мы сможем перейти к предыдущей activity в стеке. Например, в случае выше если мы нажмем на кнопку Назад, то MainActivity на вершине стека завершает свою работу, и на экране начинает отображаться ThirdActivity
| ThirdActivity |
| SecondActivity |
| MainActivity |
Тем не менее иногда возникает необходимость упавлять переходом между activity. Например, в данном случае нам нежелательно при нажатии на кнопку в ThirdActivity запускать новую копию MainActivity вместо того, чтобы просто перейти к MainActivity, которая была запущена первой и находится в самом низу стека. Рассмотрим, какие возможности предоставляет нам Android.
Управление стеком activity
Для управления стеком из activity Android предлагает нам использовать флаги — константы, определенные в классе Intent . Применение определенного флага позволит нам определенным образом изменить положение в стеке для определенных activity.
Например, возьмем предыдущую задачу, когда после нажатия на кнопку в ThirdActivity запускается новый экземпляр MainActivity. Но мы хотим не запускать новую, а перейти к уже существующей.
| MainActivity |
| ThirdActivity |
| SecondActivity |
| MainActivity |
Чтобы выйти из этой ситуации, мы можем использовать флаг Intent.FLAG_ACTIVITY_REORDER_TO_FRONT :
Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(intent);
флаг Intent.FLAG_ACTIVITY_REORDER_TO_FRONT перемещает activity, к которой осуществляется переход на вершину стека, если она ужее есть в стеке. И в этом случае после перехода из ThirdActivity к MainActivity стек будет выглядеть следующим образом:
| MainActivity |
| ThirdActivity |
| SecondActivity |
Если же нам просто надо перейти из ThirdActivity к MainActivity, как если бы мы перешли назад с помощью кнопки Back, то мы можем использовать флаги Intent.FLAG_ACTIVITY_CLEAR_TOP и Intent.FLAG_ACTIVITY_SINGLE_TOP :
Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);
Флаг Intent.FLAG_ACTIVITY_CLEAR_TOP очищает все activity кроме той, которая запускается (если она уже есть в стеке). А флаг Intent.FLAG_ACTIVITY_SINGLE_TOP указывает, что если в вершине стеке уже есть activity, которую надо запустить, то она НЕ запускается (то она может существовать в стеке только в единичном виде).
В этом случае после перехода из ThirdActivity к MainActivity стек будет полностью очищен, и там останется одна MainActivity.
Еще один флаг — Intent.FLAG_ACTIVITY_NO_HISTORY позволит не сохранять в стеке запускаемую activity. Например, при запуске SecondActivity мы не хотим ее сохранять в стеке:
Intent intent = new Intent(this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent);
В этом случае при переходе по цепочке MainActivity -> SecondActivity -> ThirdActivity стек будет выглядеть следующим образом:
| MainActivity |
| ThirdActivity |
Android Studio: Переключение между Activity
Рабочая среда Android Studio позволяет протестировать готовое приложение, для этого Вам необходимо создать виртуальное устройство. Для этого перейдите в AVD Manager.

Назовём рабочую область BackActivity.

Теперь мы возвращаемся к MainActivity, и к кнопке «Старт» пишем обработчик, для начала добавим строку:
Можно и в режиме дизайна, указать метод onClick:

Сразу укажем кнопке ID (buttonBack).

После, открываем MainActivity.java, и в метод Create добавляем строку:
Button buttonBack = (Button)findViewById(R.id.buttonBack);

Далее необходимо навести каретку на (Button), вызвать контекстное меню зажав клавиши Alt+Enter и выбрать импорт класса.

Теперь, сразу после, добавим строку:
Программа нам говорит об ошибке, чтобы её исправить нужно отредактировать строку:
public class MainActivity extends AppCompatActivity
и заменить её на:
public class MainActivity extends AppCompatActivity implements View.OnClickListener

Теперь добавляем следующие строки:
И импортируем класс Intent (в противном случае выдаст ошибку Cannot find symbol class Intent).

Шалость удалась, у нас есть работающая кнопка, которая переносит нас на новую Activity. Наполнять Activity содержимым буду уже в следующих обзорах.
Android programmers blog
Всем привет, в очередной раз решил написать пост и долго не знал о чем написать, а потом залез на несколько форумов и увидел что у народа серьезные траблы с интентами в андроиде, люди не могут перейти с активности на активность или передать данные таким способом.
В интернете полно туториалов на эту тему, я не знаю в чем проблема и почему у некоторых не получается разобраться, но сегодня я постараюсь разъяснить элементарные вопросы по этому классу.
Для начала что такое Intent? Intent — это механизм для описания одной операции — выбрать фотографию, перейти с активности на активность, передать данные с одного окна на другое, отправить письмо, сделать звонок, запустить браузер (или какую либо другую программу) и перейти по указанному адресу.
Сегодня я по порядку расскажу как делается каждый из этих типов интентов, быстро и кратко.
Переход с одной активности на другу
Это самый простой и базовый способ, если вы запомните его то дальше будет просто. В любое место где вы хотите что бы запускался переход на вторую активность вставьте этот код и он будет переходить на нужную активность.
Допустим у нас есть два класса — FirstActivity и SecondActivity, нам с первой нада перейти на вторую, для этого на первой активности в лейауте создаем кнопку и вешаем на нее листенера в коде программы. Это выглядит примерно так:
Сперва делаем леяут с разметкой.
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> RelativeLayout>
Дальше пишем код в onCreate для простоты.
FirstActivity.java
protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //присвоили кнопку к кнопке на леяуте Button btn = (Button) findViewById(R.id.button1); //повесили на него листенера btn.setOnClickListener(new OnClickListener() @Override public void onClick(View v) //переходим с первой на вторую активность Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivity(intent); > >); >
А дальше нам нада вторую активность описать в манифесте для того что бы перейти на нее, если не опишем то у нас программа просто будет падать из за незнания что такая активность существует.
AndroidManifest.xml
application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > activity android:name="com.example.intent.FirstActivity" android:label="@string/app_name" > intent-filter> action android:name="android.intent.action.MAIN" /> category android:name="android.intent.category.LAUNCHER" /> intent-filter> activity> activity android:name=".SecondActivity">activity> application>
Ну вторая а вторая активность у нас пустая, после нажатия на кнопку вы просто перейдете на следующую активность. Для просмотра результата перехода создайте второй лейаут файл в котором добавьте текствью, и напишите что нибудь там. Самое главное что бы SecondActivity наследовался так же от Activity как и первый иначе вы увидите ошибку.
Передача данных между активностями
Передача данных между активностями очень популярная штука, и полезная, что бы не мучаться и не делать все это интентами конечно можно использовать преференсы, сохранять в них и считывать в нужной активности, но это годиться не для разовой передачи, а для записи данных на долгое хранение, так как после 1000 записи в префсы у вас программа начнет уже глючить так как кеш будет забит разного рода данными.
Идея такого интента очень простая, для примера я просто передам с одной активности на другую какое нибудь слово. Пусть это слово будет «ты торт!». Смотрим как это делается.
Выглядеть программа будет так же как и в первом примере, у нас будет одна кнопка которая будет делать переход с активности на активность, только на этот раз еще и будет передавать слово, по этому менять в лейауте ничего не будем, а изменим сразу код в FirstActivity.
FirstActivity.java
// переходим с первой на вторую активность Intent intent = new Intent(FirstActivity.this, SecondActivity.class); //Передаем на следующую аквтиность слово в статическую переменную intent.putExtra(SecondActivity.TEXT, "Ты торт!"); startActivity(intent);
Вот в этом месте мы добавляем putExtra который передает все что ваша душа пожелает, он принимает класс с константой в которую записываем что передавать, и сам текст\символ\цифру которую мы хотим передать.
А дальше во SecondActivity мы должны создать собственно эту статическую переменную в которую будем записывать, и принять Bundle который мы отправляем.
SecondActivity.java
// статическая перменная public static final String TEXT = "Text"; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.second); //объявляем текствью в который выведем текст TextView text = (TextView) findViewById(R.id.textView1); //принимаем интент посланый из первой активности Bundle extras = getIntent().getExtras(); //выводим что получили text.setText(extras.getString(TEXT)); >
Ну и теперь нам нужна разметка в которую будем рисовать текст:
xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> LinearLayout>
После перехода с первой активности на другую вы увидите в левом верхнем углу сообщение что вы торт.
Вызов программ через intent
Так же как я уже упоминал ранее при помощи этого класса можно открывать программы разного рода, разные браузеры которые установлены на телефоне\планшете или например приложения для социальных сетей или файловые менеджеры для нахождения файлов.
Это очень удобная штука, я ее использовал в некоторых своих программах, в версиях андроида выше 3 работает отлично, а почему то в 3 версии андроида оно бычит, радует только то что телефонов на третьем андроиде очень мало (:
В общем смотрим на все том же самом примере класса FirstActivity. Сейчас мы откроем список браузеров.
В классе FirstActivity заменим наш старый интент на вот такой:
FirstActivity.java
// задаем адрес на который нада перейти Uri address = Uri.parse("http://google.com"); // открываем список браузеров Intent intent = new Intent(Intent.ACTION_VIEW, address); // запускаем startActivity(intent);
Тут у нас из комментариев понятно что происходит, но помимо константы ACTION_VIEW есть еще очень много других разных констант которые позволяют выполнять разные функций.
Открытие файлов и папок через intent
Например для открытия локального каталога внутри телефона вам нужно сделать вот такой интент:
В FirstActivity заменим старый интент на этот.
FirstActivity.java
//создаем в шапке класса переменную которая будет сохранять id выбранного файла private static final int FILE_SELECT_CODE = 0;
//а дальше в том же onClickListener'ре заменяем старый интент на этот // задаем константу для захвата данных Intent intent = new Intent(Intent.ACTION_GET_CONTENT); //какую папку открываем intent.setType("file/*"); //запускаем всю красоту startActivityForResult(intent, FILE_SELECT_CODE);
А дальше что бы полученный id использовать мы создаем метод onActivityResult() который по возвращению на активность примет файл который мы выбрали в файловом менеджере.
FirstActivity.java
//Выше или ниже метода onCreate() public void onActivityResult(int requestCode, int resultCode, Intent data) switch (requestCode) case FILE_SELECT_CODE: Uri uri = data.getData(); try //тут передаем uri в тот метод в котором вы ходите вывести содержимое файла > catch (IOException e) e.printStackTrace(); > catch (URISyntaxException e) e.printStackTrace(); > > break; > super.onActivityResult(requestCode, resultCode, data); >
Так же в андроиде есть куча других констант, их всех я описать не буду потому что их много, например вот несколько:
Сегодня мы рассмотрели только основные самые используемые виды intent’ов, спасибо за внимание.
Исходников не будет так как мне кажется что материал довольно простой.
Запуск другой Activity – второго окна android-приложения
После завершения предыдущего урока, у вас есть приложение, которое показывает активити (один экран) с текстовым полем и кнопкой. В этом уроке вы добавим код к MainActivity , который запустит новую активити , когда пользователь нажмет на кнопку Отправить..
Ответить на кнопку Отправить
Чтобы ответить на событие нажатия кнопки, откройте fragment_main.xml файла макета и добавьте android:onClick атрибут к элементу:
android:onClick значение атрибута, «sendMessage» , это имя метода в вашей активити , который система вызывает когда пользователь нажимает кнопку.
Откройте MainActivity класс (расположенный в каталоге проекта src/ ) и добавьте соответствующий метод:
/** Called when the user clicks the Send button */ public void sendMessage(View view) < // Do something in response to button >
Чтобы система смогла найти этот метод с именем, заданным в android:onClick , сигнатура должна быть именно такой, как вы видели. В частности, метод должен:
- Быть public
- Имейте void в качестве возвращаемого значения
- Иметь View в качестве единственного параметра (это будет View , на котором нажали)
Далее, вы заполните этот метод, чтобы прочитать содержимое текстового поля и доставить этот текст в другую активити .
Создать Intent
Intent это объект, который обеспечивает связывание отдельных компонент во время выполнения (например, двух активити ). Intent представляет “намерение что-то сделать”. Вы можете использовать интент для широкого круга задач, но чаще всего они используются, чтобы начать другую активити .
Внутри sendMessage() метода, создайте Intent для запуска активити под названием DisplayMessageActivity :
Intent intent = new Intent(this, DisplayMessageActivity.class);
Для этого требуется импортировать Intent класс:
import android.content.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:
Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.edit_message); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message);
Примечание: Вам необходим оператор импорта для android.widget.EditText . Вы определите EXTRA_MESSAGE константу буквально сейчас.
Intent может нести коллекцию различных типов данных в виде пары ключ-значение, называемых Extras. Метод putExtra() принимает имя ключа в первом параметре и значение во втором параметре.
Для того, чтобы Activity смогла запросить дополнительные данные, вы должны определить ключ для дополнений вашего интента, используя общедоступную константу. Так что добавьте EXTRA_MESSAGE определение в начало MainActivity класса:
public class MainActivity extends ActionBarActivity
Вообще это хорошая практика, определять ключи для Intent Extras используя имя пакета вашего приложения в качестве префикса. Это гарантирует, что они уникальны, в случае когда ваше приложение взаимодействует с другими приложениями.
Запуск второй Activity
Для запуска активити, вызовите startActivity() и передайте в него ваш Intent . Система получает этот вызов и запускает экземпляр Activity указанный в Intent .
С помощью этого нового кода, полный sendMessage() метод, который вызывается кнопкой Отправить теперь выглядит следующим образом:
/** Called when the user clicks the Send button */ public void sendMessage(View view)
Теперь вам нужно создать 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 класс должен выглядеть следующим образом:
public class DisplayMessageActivity extends ActionBarActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); if (savedInstanceState == null) < getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); >> @Override public boolean onOptionsItemSelected(MenuItem item) < // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int if (id == R.id.action_settings) < return true; >return super.onOptionsItemSelected(item); > /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment < public PlaceholderFragment() < >@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) < View rootView = inflater.inflate(R.layout.fragment_display_message, container, false); return rootView; >> >
Если вы использовали среду разработки, отличную от Android Studio или Eclipse, обновите ваш DisplayMessageActivity класс согласно коду приведенного выше.
Все подклассы Activity должны реализовать onCreate() метод. Система вызывает его при создании нового экземпляра активити . В этом методе вы должны определить макет активити с помощью setContentView() метода, и здесь вы должны выполнить начальную настройку компонентов активити .
Примечание: Если вы используете среду разработки, отличную от Android Studio или Eclipse, ваш проект не содержит activity_display_message макет, который необходим для setContentView() . Всё в порядке, потому что вы будете обновлять этот метод позже и не будете использовать этот макет.
Добавить строку заголовка
Если вы использовали Android Studio или Eclipse, вы можете перейти к следующему разделу, поскольку шаблон обеспечивает создание строки заголовка для новой активити .
Иначе, добавьте заголовок для новой активити в strings.xml файл:
. My Message
Добавьте её в манифест
Все Activity должны быть объявлены в файле манифеста, AndroidManifest.xml , c использованием тега .
При использовании Android Studio или Eclipse для создания своей Activity, запись в манифесте создается по умолчанию. В других случаях можно добавить запись в манифест самим. Это должно выглядеть следующим образом:
Атрибут android:parentActivityName объявляет имя родительской Activity в рамках логической иерархии приложения. Система использует это значение для реализации поведения навигации по умолчанию, такого как навигация Вверх на Android 4.1 (Уровень API 16) и выше. Вы можете реализовать такое же поведение навигации для более старых версий Android, используя Библиотеку Поддержки и добавив элемент, как показано здесь.
Примечание: Ваш Android SDK уже должен включать последнюю версию Библиотеки Поддержки Android. Он включен в пакет ADT, но если вы используете другой IDE, он должен был быть установлен на шаге Добавление платформ и пакетов . В Android Studio и Eclipse, Библиотека Поддержка автоматически добавляется в ваше приложение проекта (вы можете увидеть JAR файл библиотеки, перечисленный в Зависимости Android). Если вы не используете Eclipse, вам нужно вручную добавить библиотеку в проект — следуйте инструкциям в руководстве настройка библиотеки поддержки , а затем вернитесь сюда.
Если вы разрабатываете на Android Studio или Eclipse, вы можете запустить приложение сейчас, но ничего такого не произойдет. При нажатии на кнопку Отправить запустится вторая активность, но она использует по умолчанию макет “Привет мир”, предоставленный шаблоном. Вы скоро обновите активити , чтобы вместо этого отображать настраиваемое представление текста, так что если вы используете другую среду разработки, не волнуйтесь, что приложение еще не будет компилироваться.
Получение Интента
Каждый Activity вызывается с помощью механизма Intent , независимо от того, как пользователь между ними переходит. Вы можете получить Intent , который запустил вашу активити , вызвав getIntent() и получить данные, содержащиеся в нем.
В DisplayMessageActivity класса onCreate() метод, получает интент и извлекает сообщение доставленное MainActivity :
Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
Отображение сообщения
Для отображения сообщения на экране, создайте TextView виджет и установите текст с помощью setText() . Затем добавьте TextView в качестве корневого представления макета активити , передав его в setContentView() .
Полный onCreate() метод для DisplayMessageActivity теперь выглядит следующим образом:
@Override public void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); // Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); // Create the text view TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); // Set the text view as the activity layout setContentView(textView); >
Теперь вы можете запустить приложение. Когда оно откроется, введите сообщение в текстовое поле, нажмите Отправить, и сообщение появится во второй активити .

Рисунок 2. Две активити в законченном приложении, работающие на Android 4.4.
Вот и все, вы создали своё первое Android приложение!
Чтобы узнать больше, перейдите по ссылке на следующий курс.
Следующий курс: Поддержка различных Android устройств
Если не указано иное, этот контент распространяется под лицензией Creative Commons Attribution 2.5. Для получения дополнительной информации и ограничений, см. Лицензия контента.