Criando uma Activity secundária

No post passado vimos como lançar uma Activity a partir de outra, usando as funções startActivity() 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:

Configurando a Activity a ser criada

Configurando a 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:

WelcomeActivity sendo executada

WelcomeActivity sendo executada

Assim, finalizamos nossa Activity de “Boas Vindas”. Até o próximo artigo!

Desenvolvendo para Android

57 respostas to “Criando uma Activity secundária”

  1. Lucas disse:

    Olá, estou tendo uma certa dificuldade para baixar e instalar o Motodev. O site do Motodev Studio não está mais disponibilizando o download. Não sei o que fazer para instalá-lo. Se alguém puder ajudar, seria muito bom.

  2. Oi Lucas,

    O Moto dev foi descontinuado. Estou corrigindo o artigo para usar o Android Studio, nova ferramenta de desenvolvimento.

  3. Leslie disse:

    Oi, Felipe.
    Primeiramente quero lhe parabenizar pelo tutorial. Excelente!
    Estou exatamente neste post de criação de activity secundária. Gostaria de saber se tem previsão de disponibilização deste artigo atualizado, usando o Android Studio.

  4. Roberto Coutinho disse:

    Olá Felipe,

    Muito bom seus tutoriais.
    Para acrescentar, neste de activity secundaria faltou mensionar que a segunda activity tem que declarar no AndroidManifest.xml.

    No arquivo AndroidManifest.xml no elemento Application, declare sua activity nova, ex:

    Até mais.

  5. Roberto Coutinho disse:

    Um exemplo está no link abaixo, seção Create the activity without Android Studio:

    http://developer.android.com/intl/pt-br/training/basics/firstapp/starting-activity.html

  6. nickson disse:

    estou iniciando em android. estava testando seu codigo para fazeralgo porêm gostaria de saber se ao apertar o botão continuar era para ir para a Mainactivity. se era gostaria de saber o porque de não estar indo aqui?

  7. marcos vieira disse:

    estou aprendendo no android studio. nas versões anteriores, quando uma activity era criada, ela vinha com o relative layout. agora vem com o ConstraintLayout. preciso aprender como lidar com isso.

Deixe um comentário