Pplware

Aprenda a programar para Android – Parte IV

Por Christian Göllner para o PPLWARE.COM

Depois de termos aprendido a instalar e configurar o SDK (ver aqui) desenvolvemos o layout de uma aplicação tipo calculadora (ver aqui). Na parte 3 demos vida à calculadora ( ver aqui).

Até agora temos trabalhado numa app que mostra uma activity, i.e. um único ecrã. Hoje vamos aprender a iniciar um segundo ecrã quando o utilizador seleccionar um botão. 

Passo 1 – Vamos abrir o eclipse e seleccionar um workspace qualquer. Passo 2 – Criar um novo projecto Android com um nome à escolha. Passo 3 – Abrimos o único ficheiro .xml que está na pasta res/layout e substituímos tudo pelo seguinte código:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent" >
 <EditText
 android:id="@+id/editTextMensagem"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentLeft="true"
 android:layout_alignParentTop="true"
 android:layout_toLeftOf="@+id/botaoEnviar"
 android:layout_marginTop="16dp"
 android:ems="10" />
 <Button
 android:id="@+id/botaoEnviar"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignBaseline="@+id/editTextMensagem"
 android:layout_alignBottom="@+id/editTextMensagem"
 android:layout_alignParentRight="true"
 android:text="Enviar"
 android:onClick="enviarMensagem" />
</RelativeLayout>

O atributo android:onClick serve para dizer que sempre que este botão for seleccionado, vai ser chamado um método chamado enviarMensagem dentro da activity que está a utilizar este layout.

Passo 4 – Vamos abrir o único ficheiro .java presente no nosso projeto e adicionar o tal método enviarMensagem.

/** Chamado quando o utilizador seleccionar o botão de enviar **/
public void enviarMensagem(View view) {
}

Vai aparecer uma mensagem de erro no eclipse porque ainda não importámos a classe View.

Podemos utilizar o atalho Ctrl + Shift + O para importar as classes em falta (Cmd + Shift + O no Mac).

É importante referir que para o sistema detetar correctamente este método, o nome do método tem de coincidir com o nome atribuido no ficheiro xml e ainda tem que:

Passo 5 – Criar um Intent.

Um  Intent(Intenção) é um objecto que permite ligar componentes em runtime. Representa a intenção da aplicação fazer algo. Pode-se utilizar um Intent para muitas coisas, como por exemplo partilhar conteúdo, ir buscar conteúdo ou iniciar outras Activities. Nós vamos querer utilizá-lo para iniciar uma Activity.

Dentro do método enviarMensagem() vamos então criar um Intent para iniciar uma activity chamada MostrarMensagemActivity (que vamos criar a seguir):

/** Chamado quando o utilizador seleccionar o botão de enviar*/
public void enviarMensagem(View view) {
Intent intent = new Intent(this, MostrarMensagemActivity.class);
}

O construtor da classe Intent utilizado aqui recebe dois parâmetros:

  1. Um Context como primeiro parâmetro. Neste caso passamos this, que é uma referência para a instância da nossa classe actual. Este parâmetro é necessário para a segunda Activity saber quem a criou e depois quando ela terminar saber para onde regressar.
  2. Class do componente ao qual o sistema tem que entregar oIntent.

Um Intent para além de permitir iniciar uma Activity, também permite transportar dados de uma Activity para outra. Nós vamos utilizar essa funcionalidade para transportar a mensagem inserida na caixa de texto.

/** Chamado quando o utilizador seleccionar o botão de enviar */
public void enviarMensagem(View view) {
Intent intent = new Intent(this, MostrarMensagemActivity.class);
 EditText editText = (EditText) findViewById(R.id.editTextMensagem);
String mensagem = editText.getText().toString();
intent.putExtra(“EXTRA_MENSAGEM”, mensagem);
 startActivity(intent);
}

Para transportar dados num Intent usam-se entradas de pares chave-valor. No nosso caso a String “EXTRA_MENSAGEM” é a chave e a String mensagem é o valor.

Passo 6 – Criar a segunda Activity.

No nosso projecto vamos criar uma classe nova chamada MostrarMensagemActivity que extende a classe Activity.

public class MostrarMensagemActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}

Agora vamos ter de declarar esta Activity no ficheiro AndroidManifest.xml para poder ser executada. <application … > <activity android:name=”.MostrarMensagemActivity” /> … </application>

Passo 7 – Receber o Intent e mostrar a mensagem.

public class MostrarMensagemActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Obter a mensagem do Intent
Intent intent = getIntent();
String mensagem = intent.getStringExtra(“EXTRA_MENSAGEM”);

// Criar um TextView
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(mensagem);

setContentView(textView);
}
}

A partir de agora já se pode correr a app, escrever uma mensagem, pressionar “Enviar” e ver a mensagem a aparecer na segunda Activity.

Nota: Este tutorial foi adaptado a partir de um tutorial do Android Training.


Download: Link para o apk

Exit mobile version