No post passado vimos como lançar uma Activity a partir de outra, usando as funçõesstartActivity() e startActivityForResult().
Hoje usaremos esta técnica para mostrar ao usuário uma tela de “Boas Vindas” na nossa aplicação de exemplo, o QuickNotes.
Para criar essa nova Activity, usaremos alguma funções do Motodev. Se você não está usando a IDE da Motorola, não tem problema – é só criar os arquivos manualmente. Porém recomendo o uso da IDE, por facilitar bastante a nossa vida.
Vamos começar criando a Activity que dará “Boas Vindas” ao usuário.
Vá até o menu “MOTODEV” >”New” > “New Android Activity”. Na tela de configuração, entre com o nome da Activity a ser criada:
Após clicar em “Finish”, já haverá a classe “WelcomeActivity” no diretório src do nosso projeto.
Com a Activity criada, o próximo passo é criar o arquivo XML que definirá o seu layout. Crie o arquivo ‘welcome.xml’ no diretorio res/layout com o seguinte conteúdo:
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView android:id="@+id/welcome_text_view"
- android:layout_width="fill_parent"
- android:layout_height="300dip"
- android:gravity="center"
- android:text="Bem vindo à aplicação QuickNotes!\n\nEssa aplicação foi feita durante o curso
- 'Desenvolvendo para Android' do site felipesilveira.com.br"
- >
- </TextView>
- <Button
- android:id="@+id/welcome_ok_button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Continuar"
- >
- </Button>
- </TableLayout>
Este arquivo XML define uma Activity com um texto e um botão logo abaixo, com a palavra “Continuar”.
Após criado o arquivo, vamos carregá-lo no método onCreate() da WelcomeActivity():
- setContentView(R.layout.welcome);
Lançando a WelcomeActivity
Para lançar a WelcomeActivity a partir da MainActivity, usaremos a função startActivity(). Esta função recebe como parâmetro um Intent. Posteriormente iremos aprofundar nosso conhecimento sobre essa importante classe, mas por enquanto o que você precisa saber é que ela é usada para fazer a comunicação entre Activities.
No código abaixo instanciamos um Intent cuja única função é lançar a WelcomeActivity, e então o usamos como parâmetro para a startActivity.
Dessa forma, o código da MainActivity fica assim:
- package br.com.felipesilveira.quicknotes;
- import android.app.Activity;
- import android.os.Bundle;
- import android.content.Intent;
- public class MainActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Intent i = new Intent(this, WelcomeActivity.class);
- startActivity(i);
- }
- }
Tratando os eventos de um botão
Até agora, já temos a Activity secundária sendo lançada, mas o que deve acontecer quando o usuário clicar no botão “Continuar”?
A WelcomeActivity deve morrer - Dessa forma, a última Activity instanciada será mostrada novamente – que por sinal é a nossa MainAcitivity!
Para fazer isso, devemos adicionar um listener ao botão para que o método finish() seja invocado ao clique do usuário. O método finish() da classe Activity força a “morte” desta.
O código da WelcomeActivity fica assim:
- package br.com.felipesilveira.quicknotes;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class WelcomeActivity extends Activity {
- /**
- * @see android.app.Activity#onCreate(Bundle)
- */
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.welcome);
- final Button button = (Button) findViewById(R.id.welcome_ok_button);
- button.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- finish();
- }
- });
- }
- }
Executando nosso projeto, temos a seguinte tela:
Assim, finalizamos nossa Activity de “Boas Vindas”.