воскресенье, 17 июня 2012 г.

Работа с Intent

Intent класс в Android который позволяет обмениваться данными между разными Activity внутри конкретного приложения , а также между приложениями в самой системе. Для того чтобы перейти от Activity1 к Activity2 необходимо выполнить следующее

Intent testIntent = new Intent(Activity1.this,Activity2.class);
startActivity(testIntent);


Часто нужно передать данные между Activity поэтому в данном классе предусмотрены методы putExtra (String name, Parcelable[] value) и много методов для извлечения данных в зависимости от типа передаваемых данных. Давайте рассмотрим следующий пример :

String login = "Bart";
testIntent.putExtra("login",login);


Здесь мы ложим в наш testIntent переменную типа String. Для того чтобы теперь Activity2 получило данные которые "лежат" в testIntent необходимо использовать метод getStringExtra

String username;
Intent testIntent = getIntent();
username = testIntent.getStringExtra("login");


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

Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "123456789"));
startActivity(dialIntent)

Также необходимо указать в AndroidManifest.xml permission для совершения данного действия

<uses-permission android:name="android.permission.CALL_PHONE" />

Для вызова стандартного активити для отправки смс:

Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("sms_body", "Some SMS text");
startActivity(smsIntent);


Для открытия ссылки в браузере :

Intent browseIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browseIntent);


При этом приложение предложит выбрать браузер в котором просматривать данную ссылки. Если это будет ссылка на YouTube то можно будет открыть через него. На этом наверно завершу знакомство Intent. Хочу сказать что это далеко не все возможности класса Intent. Более подробно поговорим в последующих уроках.






Комментариев нет:

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