Você está na página 1de 9

Programação de Dispositivos Móveis.

Aula n°6
Intents.

Eng. Edmundo Manave


Instituto Superior de Transportes e Comunicação

1
Intents
Definição

Intents são objectos responsáveis por passar informações, como se


fossem mensagens, para os principais componentes da API do
Android, como :
➢ Activities, Services e BroadCast Receivers.

Para que um destes componentes seja instanciado, é necessário que


seja criado um Intent, mesmo quando não temos nenhuma informação
para passar para o componente criado.

Quando usado em conjunto com Intent Filters podemos até iniciar uma
Activity de outros aplicativos, ou o inverso, deixar que um outro
aplicativo inicie uma das nossas Activities.

2
Intents
Intents com Activities

Para iniciar uma nova Activity é necessário usar o método


startActivity() presente no objeto Context, ou na Activity.
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button = (Button)findViewById(R.id.main_button);


button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent intent = new Intent(MainActivity.this,SecondActivity.class);


startActivity(intent);
}});}

3
Intents
Intents com Activities

public class SecondActivity1 extends


Activity {

@Override
protected void onCreate(Bundle
savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.second);
}
}

4
Intents
Intents para passar dados
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.second);

final EditText nameEditText = ( EditText ) findViewById (R.id.name_edit_text );


final EditText ageEditText = ( EditText ) findViewById (R.id.age_edit_text );
Button button = ( Button ) findViewById (R.id. next_button );

button . setOnClickListener ( new View.OnClickListener () {

public void onClick ( View v) {


String name = nameEditText . getEditableText (). toString ();
String age = ageEditText . getEditableText (). toString ();

Intent intent = new Intent (SecondActivity.this ,ThirdActivity.class);


intent . putExtra ("name", name );
intent . putExtra ("age", age );
startActivity ( intent );
}
}); }}

5
Intents
Intents para passar dados
Do outro lado, na Activity que está sendo criada, podemos obter os
valores através do Bundle que pode ser obtido a partir do método
getExtras presente no Intent:

public class ThirdActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.third);

Bundle extras = getIntent (). getExtras ();


String name = extras.getString("name");
String age = extras.getString("age");

TextView nameTextView = (TextView ) findViewById (R.id. name );


TextView ageTextView = (TextView) findViewById (R.id. age );

nameTextView . setText (getString(R.string.user_name , name ));


ageTextView . setText (getString(R.string.user_age , age ));
}}
6
Intents
Abrindo outros aplicativos

É possível abrir outros aplicativos utilizando intents. Para isso, é


necessário passar uma flag que chamamos de action. Dependendo
do tipo de action que passarmos, um novo aplicativo será aberto
para executar a acção.

7
Intents
Abrindo outros aplicativos

public class MainActivity extends ActionBarActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button viewSiteButton = ( Button ) findViewById (R.id. view_site_button );


Button sendEmailButton = ( Button ) findViewById (R.id. send_email_button );
Button makeCallButton = ( Button ) findViewById (R.id. make_call_button );

viewSiteButton . setOnClickListener ( new View.OnClickListener () {

@Override
public void onClick ( View v) {
Intent intent = new Intent ( Intent.ACTION_VIEW , Uri.parse
("www.transcom.co.mz/isutc/"));
startActivity ( intent );
}
});

8
Intents
Abrindo outros aplicativos

sendEmailButton . setOnClickListener ( new View.OnClickListener () {

@Override
public void onClick ( View v) {
Intent intent = new Intent (Intent.ACTION_SEND );
intent . setType ("plain/text");
intent . putExtra ( Intent . EXTRA_EMAIL , new String [] { "edframa@live.fr" });
startActivity ( Intent . createChooser ( intent , " Enviar email "));
}
});

makeCallButton . setOnClickListener ( new View.OnClickListener () {


@Override
public void onClick ( View v) {
Intent intent = new Intent ( Intent.ACTION_DIAL, Uri . parse("tel:847265578"));
startActivity (intent );
}
});}}

Você também pode gostar