Домой / Работа в Интернете / Открытие приложений и переключение между ними. Как переключится между приложениями на андроид? Быстрое переключение программ на андроид

Открытие приложений и переключение между ними. Как переключится между приложениями на андроид? Быстрое переключение программ на андроид

Интерфейсы многозадачности и взаимодействие с ними всегда были одной из слабых сторон операционной системы Android, по крайней мере лично для меня. Либо ребята из Google просто не хотят сделать хорошее переключение между задачами и стараются идти «своим путем», либо просто хорошие интерфейсы защищены патентами. В любом случае операционная система Android и стала популярной потому, что интерфейс ее легко можно изменить. Например, недавнее позволяет облегчить работу с часто используемыми задачами. Читайте полный обзор под катом .

До появления Pintasking у приложения уже было несколько аналогов, например и . Но все они в той или иной мере были несовершенны. Новая разработка от студии PhinxApps предлагает удобный способ переключения между «горячими» задачами и даже добавляет один интересный жест, который является аналогом ALT + Tab на компьютерах с Windows.

Как работает

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


Если вас раздражает постоянно висящее уведомление, то его можно убрать - достаточно отключить доступ Pintasking к нотификациям в менеджере приложений. Иконки в баре довольно умные, например: после того, как вы запустили браузер, его значок в баре пропадет и на его месте появится иконка переключения задачи, которая возвратит вас в предыдущее приложение.

Долгое нажатие на иконки позволяет быстро перейти в настройки Pintasking или удалить иконку из бара.

Жесты

Удобные свайп-жесты - одна из главных функций приложения Pintasking. Настройки программы предлагают активировать два жеста: свайп снизу вверх с кнопки «Домой» (замена вызова Google Now) и свайп с левой части панели бара уведомлений вниз. Лично я вообще не пользуюсь персональным помощником от Google, поэтому замена жеста с кнопки «Домой» далась мне легко. Жест переключает между текущей и предыдущей задачами, что довольно удобно. Мне как, пользователю смартфона BlackBerry, где жест снизу вверх является системным, понравились возможности Pintasking в этом плане.


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


GIF-анимация по клику (много трафика!)


В Pintasking полно интересных настроек и скрытых возможностей. Например, на устройствах с есть возможность убрать задержку при переключении задач. Также можно настроить размер и положение иконок в боковом баре, включить или выключить жесты, увеличить или уменьшить скорость анимаций. И большинство этих возможностей доступны только в платной версии приложения. Создатели Pintasking максимально ограничили функционал бесплатного приложения. В нем пользователи могут закрепить только две иконки без настроек. Весь потенциал приложения раскрывается только в платной версии.


Приложение Pintasking определенно понравится тем, кто пользуется небольшим набором программ и часто переключается между ними. Пока в ванильном Android не появилось полноценной многооконности, Pintasking может быть полезным в повседневном использовании. Скачать приложение Pintasking для Android можно на Трешбоксе.

Android 7.0 Nougat сегодня можно назвать самой масштабной версией этой платформы. Этот дистрибутив действительно приносит множество существенных улучшений и усовершенствований, по сравнению с 6.0 (Marshmallow), а также предоставляет много важных изменений в юзабилити. Что нового в Android 7 представлено пользователям?

Основные изменения

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

Инструкция к «Андроиду 7» может быть кратко представлена так. В меню «Настройки» присутствуют новые вкладки, которые реплицируют все найденные в устройстве опции. Кроме того, добавлен подпункт «Поддержка», предназначенный для получения помощи круглосуточно. Также были внесены некоторые изменения в общие настройки, в том числе добавлен диспетчер смарт-хранилищ с параметрами автоматической и ручной очистки. Появился раздел «Перемещения», в котором находятся различные настройки жестов и функции обнаружения движения. Поддержка GIF также имеется в Google Keyboard.

Обзор 7.0 в двух словах

Если попытаться кратко описать Android Nougat, то можно сказать, что это мобильная платформа, глубоко пускающая свои корни. Ощущение стабильности этой ОС становится все более сильным уже начиная с 5.0 Lollipop. Так, в версии 5 можно наблюдать гораздо меньше проблем с производительностью, а внешнему виду уделяется все больше внимания. Nougat 7.0 же, в свою очередь, отличается расширением функциональности, улучшением существующих функций и дальнейшим увеличением возможностей Android.

Стоит отметить, что Android 6.0 Marshmallow в основном поддерживала общий вид 5.0 Lollipop, но получила некоторые новые функции, такие как DozeMode, сканер отпечатков пальцев API и гранулярные разрешения. Прошел всего год, и появилась версия 7, которая поддерживает дизайн главного экрана и приложений из предыдущего 6-го дистрибутива, но при этом закладывает фундаментальную основу для всего функционала.

При изучении инструкции к «Андроиду 7 Нуга» можно заметить, что в платформе имеется гораздо больше инноваций, чем кажется на первый взгляд. Появились некоторые новые визуальные функции, которыми можно воспользоваться, чтобы изменить меню настроек и область уведомлений.

Режим экрана

В первую очередь инструкция к «Андроиду 7» на русском языке актуальна для новых настроек дисплея. Nougat предоставляет режим с разделенным экраном для Android. Сплит-экран работает как в портретном, так и в ландшафтном режимах, причем два окна изменяются и настраиваются только в портретном. Разработчики приложений могут устанавливать свой собственный минимальный размер и пропорции окна, но в ландшафтном отображении будет отображаться неизменный стандарт 50/50.

Режим разделения экрана можно активировать, нажав кнопку «Обзор приложений» и выбрав «Последние». Его также можно включить, нажимая ярлык в панели выбора приложений и перетаскивая его в верхнюю часть экрана. Вы даже можете активировать действие жестов, чтобы он запускался при прокрутке вверх по кнопке обзора.

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

Быстрое переключение между программами

Представляя инструкцию к «Андроиду 7» на русском, нельзя обойти вниманием и это обновление. Быстрое переключение - это просто перетасовка между двумя последними используемыми приложениями. Оно работает в общесистемном режиме, поэтому вы можете быстро переключаться всякий раз, когда находитесь в и вы также можете использовать его во вторичном окне режима разделения экрана. Просто дважды нажмите кнопку обзора приложения, и вы переключитесь между двумя своими последними программами в дополнительном окне.

Наличие быстрого переключения - это, возможно, любимая многими функция Nougat. Она означает, что вы можете выполнять тройную задачу в многооконном режиме. Например, вы можете смотреть видеоролик YouTube в верхнем окне и быстро переключаться между двумя социальными сетями внизу. Или же вы можете просматривать электронную почту в верхней панели, одновременно переключаясь между приложением примечания и веб-страницей в нижнем окне. Это действительно выглядит потрясающе.

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

Область уведомлений

Однако не все в «Нуге» так запутано. Некоторые новые функции простые и интуитивно понятные, что подтверждает инструкция к «Андроиду 7» для чайников.

Области уведомлений в этой версии платформы получили небольшое усовершенствование, устранив карты Google. Вы получаете больше информации и меньше потраченного впустую места. Аналогично связанные уведомления и быстрый ответ настолько полезны, что удивительно, как они не появились в Android до сих пор.

Быстрый ответ - это просто возможность ответить на сообщение непосредственно из его уведомления, не открывая приложение полностью. Это фантастическая функция, которая сэкономит вам много времени и избавит вас от бесконечного переключения программ.

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

Система UI Tuner

Для пользователей, которые предпочитают «скользящую шкалу» уведомлений приложений из предварительного просмотра, доступен режим System UI Tuner, включаемый с помощью элементов управления уведомлением Power. Инструкция пользователя «Андроид», направленная на его включение, выглядит следующим образом.

Чтобы добавить System UI Tuner в меню «Настройки», просто нажмите и удерживайте значок шестеренки в «Быстрых настройках», пока он не начнет вращаться и ваше устройство не завибрирует. Теперь вы найдете его в нижней части этого меню. Данный режим также содержит переключатель для разметки экрана и значков в

Настраиваемые быстрые настройки

Быстрые настройки в «Андроиде Нуга» также были обновлены. Вы получаете удобный список из пяти переключателей в верхней части меню уведомлений. Вы можете отредактировать порядок этого списка, чтобы выбрать только самые важные ярлыки. Маленькая стрелка с правой стороны приведет вас к полной странице подменю «Быстрые настройки», к которой вы также можете получить доступ жестом, проведя двумя пальцами вниз от верхней части экрана).

В этой версии «Андроида» также есть несколько страниц плиток. Некоторые из них мгновенно включают или отключают определенную настройку, например фонарик, режим «Не беспокоить» и «Местоположение». Другие элементы, такие как Bluetooth и Wi-Fi, можно включить при помощи доступа к мини-меню прямо в плитке «Быстрые настройки».

Длительное нажатие на вышеуказанную плитку приведет вас к экрану полного меню настроек. В нем вы можете нажать кнопку «Редактировать» в правом нижнем углу, чтобы переставить плитки или заменить их другими. Список дополнительных опций невелик: Cast, DataSaver, Invertcolors и Hotspot. Однако разработчики теперь могут создавать пользовательские плитки QuickSettings для своих приложений, что, безусловно, сделает выбор шире в ближайшие месяцы.

Многоязыковая поддержка и обои

Полезные функции Android 7.0 затронули и языковую поддержку. Теперь Nougat позволяет вам устанавливать несколько локальных языков, а также основной и дополнительный и легко переключаться между ними. Это является огромным преимуществом для двуязычных пользователей Android и частых путешественников.

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

Оптимизация платформы

Обзор «Андроида 7.0 Nougat» подтверждает, что система не просто усложнилась по сравнению с предыдущими версиями. Большая работа была направлена ​​на ускорение развития платформы. Разработчиками были внесены большие изменения: от оптимизации Chrome до появления GoogleFiber и проекта доставки дронов Wing.

Меню настроек переконфигурировано в Android 7.0, причем двумя основными изменениями являются добавление многослойного меню слева и наличие подробной информации под каждым заголовком раздела настроек. Первое из них уже знакомо пользователям: это тот же механизм, с которым вы привыкли обращаться к Google Now и к навигационному поиску во многих приложениях Google.

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

Даже если вы не видите этот значок, например в разделе «Дополнительные параметры Wi-Fi» или на главной странице, вы все равно можете провести пальцем слева. Это удобная функция «быстрого выхода», даже если она вряд ли будет использоваться часто.

Инструкция к «Андроиду 7»: главная страница

Основная информация, содержащаяся в каждом разделе настроек, теперь отображается на главной странице. Вы сразу узнаете, к какой сети Wi-Fi или к какому устройству Bluetooth вы подключены, сколько приложений вы установили, какой объем хранилища данных вы использовали и какое время еще сможет работать ваш аккумулятор. Возможно, это незначительное дополнение, но оно дает вам важную экономию времени.

В верхней части меню «Настройки» есть новая область «Предложения», в которой вы будете периодически просматривать сообщения от системы Android о самых разных данных. Получая напоминания использовать голосовой поиск, зарегистрировать отпечаток пальца, добавить учетные записи электронной почты или изменить обои, вы можете выполнять эти действия или игнорировать предложения по своему усмотрению.

Когда вы включите режим Do Not Disturb (или несколько других параметров, таких как FlightMode), вы увидите постоянное напоминание в верхней части меню настроек, в котором вы также можете отключить его. Встроенный содержащийся в Storage > Explore, теперь слегка перекодирован и использует мозаичный макет вместо списка, представленного в Android 6.0 Marshmallow.

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

Звуки и уведомления теперь имеют свои собственные выделенные области настроек, и вы можете установить свой телефон в режим «Полная тишина» с помощью переключателя «Не беспокоить» в быстрых настройках (но не с помощью кнопки регулировки громкости).

Do Not Disturb

Режим «Не беспокоить» был одной из самых сложных реализаций полезной функции в Android. Настройки Do Not Disturb позволяют вам выбирать варианты: «Полная тишина», «Только сигналы тревоги» и «Приоритет», а также устанавливать исключения. С помощью последних вы можете разрешить определенные уведомления, включить режим «Не беспокоить» в течение заданного периода времени или на неопределенный срок, создавать автоматические правила для выходных, вечеров или часов работы, а также блокировать экранные всплывающие окна.

Сохранение данных

Data Saver - это не совсем новая опция, но благодаря ей вы можете существенно усовершенствовать управление гаджетом. Эта функция позволяет запретить доступ в Интернет для фоновых приложений, когда вы подключены к сотовым данным. Вы также получите большое напоминание в верхней части меню «Настройки», когда функция «Экономия данных» будет включена.

Включение функции экономии, доступной как для переключения быстрых настроек, так и для области данных в настройках, ограничит синхронизацию фона при подключении к Wi-Fi. Разумеется, вы можете использовать белый список любых приложений, для которых вы хотите иметь неограниченный доступ к сети (например, электронную почту или WhatsApp), даже если включен DataSaver.

Бесшовные обновления

Android Nougat также представляет концепцию обновлений по умолчанию. Это означает, что новые данные для «Андроида 7» будут загружаться в и сохраняться в другом системном разделе.

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

Изменения в последних приложениях

Недавнее меню приложений также было слегка изменено в Android 7.0. Сама система «Андроид» теперь может удалять из списка давно неиспользуемые сервисы.

Удобная кнопка «Очистить все» добавлена ​​в самую верхнюю часть стека карт, чтобы вы могли очистить беспорядок и сообщить системе, что она может закрыть любые связанные процессы приложений.

Полезное для разработчиков

Инструкцию к «Андроиду 7» можно завершить кратким описанием узкоспециальных дополнений. Nougat официально добавляет поддержку режима API Vulkan, который обещает быструю, плавную и лучшую визуализацию игровой графики.

Разработчики игр могут просто выбирать для более высокой производительности и сложности Vulkan или же придерживаться более простого в использовании, но менее интенсивного стандарта OpenGL.

Android Nougat также поддерживает Java 8. Данный язык на практике актуален только для разработчиков, поэтому для большинства пользователей его обновление пройдет незамеченным.

Приложение не всегда состоит из одного экрана. Например, мы создали очень полезную программу и пользователю хочется узнать, кто же её автор. Он нажимает на кнопку «О программе» и попадает на новый экран, где находится полезная информация о версии программы, авторе, адресе сайта, сколько у автора котов и т.д. Воспринимайте экран активности как веб-страницу с ссылкой на другую страницу. Если вы посмотрите на код в файле MainActivity.java из прошлых уроков, то увидите, что наш класс MainActivity тоже относится к Activity (или его наследникам) или, если говорить точнее, наследуется от него.

Public class MainActivity extends AppCompatActivity

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

Для эксперимента мы возьмем программу из первого урока и будем использовать для опытов кнопку (или создайте новый проект с одной кнопкой на экране). Далее создадим новую форму для отображения полезной информации. Например, покажем пользователю, что делает кот, когда идёт налево и направо. Согласитесь, это очень важная информация, дающая ключ к разгадке Вселенной.

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

Создадим новый XML-файл разметки activity_about.xml в папке res/layout . Щёлкните правой кнопкой мыши на папке layout и выберите из контекстного меню New | Layout resource file . Появится диалоговое окно. В первом поле вводим имя файла activity_about . Во втором нужно ввести корневой элемент. По умолчанию там стоит ConstraintLayout . Стираем текст и вводим ScrollView . Ввода нескольких символов достаточно, чтобы студия подсказала готовые варианты, можно сразу нажать Enter, не дожидаясь полного ввода слова:

Получится соответствующая заготовка, в которую вставим элемент TextView .

Информация будет извлекаться из ресурсов, а именно из строкового ресурса about_text . Сейчас он подсвечен красным цветом, сигнализируя об отсутствии информации. Можно было нажать Alt+Enter и ввести текст в диалоговом окне. Но для нашего примера этот способ не подойдёт, так как наш текст будет многострочным, с использованием управляющих символов. Поэтому поступим по-другому. Откроем файл res/values/strings.xml и вводим следующий текст вручную:

У лукоморья дуб зелёный;\n Златая цепь на дубе том:\n И днём и ночью кот учёный\n Всё ходит по цепи кругом;\n Идёт направо - песнь заводит,\n Налево - сказку говорит.

Мы использовали простейшие HTML-теги форматирования текста типа , , . Для нашего примера достаточно выделить жирным слова, которые относятся к коту и направлению движения. Для перевода текста на новую строку используйте символы \n . Добавим ещё один строковый ресурс для заголовка нового экрана:

О программе

С разметкой разобрались. Далее необходимо создать класс для окна AboutActivity.java . Выбираем в меню File | New | Java Class и заполняем нужные поля. На первых порах достаточно указать только имя. Потом разберётесь с другими полями.

Получим заготовку.

Сейчас класс практически пустой. Добавим код вручную. Класс должен наследоваться от абстрактного класса Activity или его родственников типа FragmentActivity , AppCompatActivity и т.д. Дописываем extends Activity . У класса активности должен быть метод onCreate() . Ставим курсор мыши внутри класса и выбираем в меню Code | Override Methods (Ctrl+O). В диалоговом окне ищем нужный класс, можно набирать на клавиатуре первые символы для быстрого поиска. В созданном методе нужно вызвать метод setContentView() , который подгрузит на экран подготовленную разметку. У нас получится такой вариант.

Package ru.alexanderklimov.helloworld; import android.app.Activity; import android.os.Bundle; /** * Created by Alexander Klimov on 01.12.2014. */ public class AboutActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); } }

Теперь начинается самое главное. Наша задача - перейти на новый экран при щелчку кнопки на первом экране. Переходим обратно к классу MainActivity . Напишем обработчик щелчка кнопки:

Public void onClick(View view) { Intent intent = new Intent(MainActivity.this, AboutActivity.class); startActivity(intent); }

Здесь я использовал способ обработки нажатия кнопки, о котором рассказывалось в занятии .

Для запуска нового экрана необходимо создать экземпляр класса Intent и указать в первом параметре текущий класс, а во втором - класс для перехода, у нас это AboutActivity . После этого вызывается метод startActivity() , который и запускает новый экран.

Если вы сейчас попытаетесь проверить работу приложения в эмуляторе, то получите сообщение об ошибке. Что мы сделали неправильно? Мы пропустили один важный шаг. Необходимо зарегистрировать новый Activity в манифесте AndroidManifest.xml . Найдите этот файл в своем проекте и дважды щёлкните на нём. Откроется окно редактирования файла. Добавьте новый тег после закрывающего тега для первой активности. Печатайте самостоятельно и активно используйте подсказки. Получится следующее:

Вот и пригодился строковый ресурс about_title . Запускаем приложение, щёлкаем на кнопке и получаем окно О программе . Таким образом мы научились создавать новое окно и вызывать его по щелчку кнопки. А в нашем распоряжении появилась мегаудобная программа - теперь всегда под рукой будет подсказка, что делает кот, когда идёт налево.

Ещё раз обращаю внимание, что второй создаваемый класс активности должен наследоваться от класса Activity или ему похожих (ListActivity и др.), иметь XML-файл разметки (если требуется) и быть прописан в манифесте.

После вызова метода startActivity() запустится новая активность (в данном случае AboutActivity ), она станет видимой и переместится на вершину стека, содержащего работающие компоненты. При вызове метода finish() из новой активности (или при нажатии аппаратной клавиши возврата) она будет закрыта и удалена из стека. Разработчик также может перемещаться к предыдущей (или к любой другой) активности, используя всё тот же метод startActivity() .

Создаём третий экран - способ для ленивых

Программисты, как и коты, существа ленивые. Постоянно помнить, что для активности нужно создать разметку и класс, который наследуется от Activity , а затем не забыть прописать класс в манифесте - да ну нафиг.

В этом случае выберите в меню File | New | Activity | Basic Activity (или другой шаблон). Дальше появится знакомое вам окно создания новой активности. Заполняем необходимые поля.

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

Самостоятельно добавьте новую кнопку на экране главной активности и напишите код для перехода на созданную активность.

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

Передача данных между активностями

Мы использовали простейший пример для вызова другого экрана активности. Иногда требуется не только вызвать новый экран, но и передать в него данные. Например, имя пользователя. В этом случае нужно задействовать специальную область extraData , который имеется у класса Intent .

Область extraData - это список пар ключ/значение , который передаётся вместе с намерением. В качестве ключей используются строки, а для значений можно использовать любые примитивные типы данных, массивы примитивов, объекты класса Bundle и др.

Для передачи данных в другую активность используется метод putExtra() :

Intent.putExtra("Ключ", "Значение");

Принимающая активность должна вызвать какой-нибудь подходящий метод: getIntExtra() , getStringExtra() и т.д.:

Int count = getIntent().getIntExtra("name", 0);

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

У второй активности SecondActivity установим элемент TextView , в котором будем выводить текст, полученный от первой активности. Напишем следующий код для метода onCreate() у второй активности.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); String user = "ЖЫвотное"; String gift = "дырку от бублика"; TextView infoTextView = (TextView)findViewById(R.id.textViewInfo); infoTextView.setText(user + " , вам передали " + gift); }

Если сейчас запустить программу и просто вызвать второе окно, как это было описано в первой части статьи, то мы увидим надпись по умолчанию ЖЫвотное, вам передали дырку от бублика . Согласитесь, довольно обидно получать такие сообщения.

Исправляем ситуацию. Добавляем код у первой активности:

Public void onClick(View view) { EditText userEditText = (EditText) findViewById(R.id.editTextUser); EditText giftEditText = (EditText) findViewById(R.id.editTextGift); Intent intent = new Intent(MainActivity.this, SecondActivity.class); // в ключ username пихаем текст из первого текстового поля intent.putExtra("username", userEditText.getText().toString()); // в ключ gift пихаем текст из второго текстового поля intent.putExtra("gift", giftEditText.getText().toString()); startActivity(intent); }

Мы поместили в специальный контейнер объекта Intent два ключа со значениями, которые берутся из текстовых полей. Когда пользователь введёт данные в текстовые поля, они попадут в этот контейнер и будут переданы второй активности.

Вторая активность должна быть готова к тёплому приёму сообщений следующим образом (выделено жирным).

// Значения по умолчанию String user = "ЖЫвотное"; String gift = "дырку от бублика"; user = getIntent().getExtras().getString("username"); gift = getIntent().getExtras().getString("gift"); TextView infoTextView = (TextView)findViewById(R.id.textViewInfo); infoTextView.setText(user + " , вам передали " + gift);

Теперь сообщение выглядит не столь обидным, а даже приятным для кое-кого. В сложных примерах желательно добавить проверку при обработке данных. Возможны ситуации, когда вы запустите вторую активность с пустыми данными типа null , что может привести к краху приложения.

В нашем случае мы знаем, что ждём строковое значение, поэтому код можно переписать так:

Intent intent = getIntent(); user = intent.getStringExtra("username");

User = getIntent().getStringExtra("username");

У программы есть недостаток - не понятно, от кого мы получаем приветы. Любая хорошо воспитанная мартышка не возьмет подарок от анонимного источника. Поэтому в качестве домашнего задания добавьте ещё одно текстовое поле для ввода имени пользователя, который отправляет сообщение.

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

Public final static String USER = "ru.alexanderklimov.myapp.USER";

Кто подставил кота Ваську - получаем результат обратно

Не всегда бывает достаточно просто передать данные другой активности. Иногда требуется получить информацию обратно от другой активности при её закрытии. Если раньше мы использовали метод startActivity(Intent intent) , то существует родственный ему метод startActivityForResult(Intent intent, int RequestCode) . Разница между методами заключается в дополнительном параметре RequestCode . По сути это просто целое число, которое вы можете сами придумать. Оно нужно для того, чтобы различать от кого пришёл результат. Допустим у вас есть пять дополнительных экранов и вы присваиваете им значения от 1 до 5, и по этому коду вы сможете определить, чей результат вам нужно обрабатывать. Вы можете использовать значение -1, тогда это будет равносильно вызову метода startActivity() , т.е. никакого результата не получим.

Если вы используете метод startActivityForResult() , то вам необходимо переопределить в коде метод для приёма результата onActivityResult() и обработать полученный результат. Запутались? Давайте разберём пример.

Предположим, вы сыщик. Поступила информация, что в ресторане со стола влиятельного человека украли два кусочка колбасы и другие продукты. Подозрение пало на трёх подозреваемых - ворона, сраный пёсик и кот Васька.

Один из посетителей предоставил серию фотографий со своего понтового айфона:


Также имеются показания другого свидетеля: А Васька слушает, да ест .

Создаём новый проект Sherlock с двумя активностями. На первом экране будет кнопка для переключения на второй экран и текстовая метка, в которой будет отображено имя воришки.