Разработка мобильных приложений. Соколова В.В. - 162 стр.

UptoLike

Составители: 

162
3.3.2. Запуск и завершение Activity
Другая activity может быть запущена вызовом startActivity() с
аргументом Intent, который описывает запускаемую activity.
Обычно в приложениях существует необходимость запуска извест-
ной activity. Этого можно достичь созданием интента, который явно
описывает activity, используя имя класса. Например, есть activity с име-
нем SignInActivity:
Intent intent = new Intent(this, SignInActivity.class);
startActivity(intent);
Если в приложении нужно выполнить действие, такое как отправка
почты, сообщения или обновление статуса, используя свои данные, то,
вместо того, чтобы создавать свои activity, можно использовать activity,
предоставляемые другими приложениями.
Например, если нужно дать возможность пользователю отправить
почтовое сообщение, то можно создать следующий интент:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);
startActivity(intent);
Иногда нужно получить результат из activity. В этом случае нужно
использовать метод startActivityForResult(), а затем получить
результат, реализовав onActivityResult(). Когда созданная activity
заканчивает выполняться, она возвращает завернутый в Intent результат
методу onActivityResult().
Закрыть activity можно методом finish(). Также уже запущен-
ную activity можно закрыть с помощью finishActivity().
3.3.3. Пример использования Intent
Пусть имеется список, состоящий из интернет адресов. Каждый
элемент списка содержит две строки: подпись и адрес. Элемент
ListView отображает подписи. Обычный клик открывает браузер с
соответствующим адресом. Контекстное меню для каждого пункта ме-
ню содержит две команды: open и edit. Команда open аналогична
простому клику, а edit открывает новую activity, в которой можно от-
редактировать подпись и адрес выбранного элемента списка.
Листинг 3.6: Пример использования Intent.
Файл манифеста AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="learn.android.lab2"