Você está na página 1de 23

Android

Activity, View e Intents

Activity
Activities so empilhadas como uma pilha de cartas;
Apenas uma ativa;
Novas Activities so colocadas no topo da pilha;
Herdam da classe android.app.Activity;
So declaradas no arquivo manifest do aplicativo;
Podem conter filtros para chamadas;
Possuem eventos para os principais estados da
Atividade;

Activity
public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
}
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
}
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus (this activity is about to be "paused").
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
}
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
}
}

Activity
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>

Activity Save State

Estados das atividades


Active
No topo da pilha
Paused
Perde o foco mas ainda est visvel
Pode ser encerrado pelo LMK (LowMemoryKiller)
Stopped
Fora do topo da pilha
Dropped
Encerrado para liberao da memria

View
As views so os blocos de construo bsicos
Responsveis por renderizar elementos na tela
Respondem a eventos
Organizados como rvore de componentes para
construo
Podem ser descritos no formato XML atravs de
recursos de leiaute

View
Android compila o cdigo do leiaute XML que depois
referenciado no cdigo da seguinte forma:

public class MyView extends Activity {

public void onCreate(Bundle savedInstanceState) {

setContentView(R.layout.filename);

View
Utilizando o id nico em uma definio de XML View
permite localizar o componente de interface no
cdigo Java.

public class MyActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {

View name = (View) findViewById(R.id.name);

View
Android prov um vocabulrio XML que corresponde
a subclasses do View e ViewGroup
A Interface pode ser definida em XML usando a
hierarquia de elementos de interface

View
Hierarquia de elementos

Layouts

Layouts e Views
Linear Layout

List View

Relative Layout

Grid View

Web View

Intents
Geralmente so criadas a partir de aes do usurio
e representam a inteno de se realizar algo;
Ex.: Iniciar o correio eletrnico ou iniciar a
reproduo de uma msica;
Definidas como mensagens enviadas por um
componente da aplicao indicando a inteno de
iniciar outro componente na mesma aplicao ou
em outra;
Recurso chave no Android pois possibilita a
colaborao entre aplicaes;
Possibilita o reuso de funcionalidades.

Intents - Compartilhar

Intents
Uri uri = Uri.parse("http://www.android.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent); (implcita)
Intent intent = new Intent(this, OutraAtividade.class);
startActivity(intent); (explcita)
Passagem de parmetros:
Uri uri = Uri.fromFile( new File("/sdcard/meuapp/hello_camera.jpg"));
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivity(intent);

Intents
Como as Intents so resolvidas?
Nome do component => Inicializao exata do
componente informado;
Ao, Categoria e dados (Intent Implcita) =>
Consulta quais os componentes podem responder
ao;
Intent Filters define:
Ao;
Categoria;
T ipo de dados (ex.: <data android:mimeType="image/*" /> ).

Intents - Actions
Intents so usados para invocar outras Activities a
partir de um componente.

Atributos primrios
action

A ao geral para ser executada, ex: VIEW, EDIT, MAIN, etc.

data

Os dados compartilhados para trabalhar, como por ex: registro de


pessoas proveniente de uma base de dados, URI, etc.

Intent Actions - Exemplos


ACTION_CALL Indica que uma chamada telefnica deve ser
realizada;
Intent call_Intent = new Intent(Intent.ACTION_CALL);
call_Intent.setData(Uri.parse(tel:+556199887766);
startActivity(call_Intent);
ACTION_VIEW - Indica que algum dado deve ser exibido para o
usurio;
Uri uri = Uri.parse("content://contacts/people/");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
ACTION_EDIT Indica que se deseja editar alguma informao;
ACTION_SENDTO Indica que se deseja enviar alguma informao.

Intent Exemplo - Implcita


Definir um filtro para a atividade
(AndroidManifest.xml):
<action android:name=HELLO_2_ACTION />
<category android:name=HELLO_2_CATEGORY />
<category android:name=android.intent.category.DEFAULT />
Chamar a Intent:
Intent intent_next = new Intent(HELLO_2_ACTION);
intent_next.addCategory(HELLO_2_CATEGORY);
startActivity(intent_next);

Referncias
http://www.slideshare.net/dtmilano/android-development-tutorial-v3
http://www.slideshare.net/natdefreitas/an-introduction-to-android