Você está na página 1de 12

Trabalhando Com Mais De Uma Tela No Android | Página 1 de 12

Home > Android > Trabalhando Com Mais De Uma Tela No Android
HOME NOVIDADES DOWNLOAD SOBRE

Trabalhando Com Mais De Uma Tela No


Android
Enviar Consulta

Trabalhando Com Mais De Uma Tela No Android


nov 23, 2011
Android

21

Troca de telas no Android

Olá. No tutorial de hoje vamos mostrar como trabalhar com mais de uma tela no android. Entre e confira.

Projeto
Hoje vamos aprender um exercício que utiliza mais de uma tela no Android. Nossa aplicação terá três telas, e nas telas, vamos ter os botões para
mudarmos de tela.

Aplicação
Vamos criar um novo projeto. Clique no menu “File” / “New” / “Other” / Android Project depois cique em Next.

Nome do projeto: TrocaTela.

Versão: Android 2.2.

Nome da aplicação: Troca de telas.

Package Name: br.trocatela.com.

Create Activity: AppTelas.

Minimum SDK: 8.

Layout

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 2 de 12

Agora abra o seu arquivo main.xml que fica localizado na pasta “res” / “layout” de um duplo clique no arquivo e a tela será carreda. Agora com o nosso
arquivo main.xml carregado clique na guia main.xml.
Vide Imagem abaixo:

Imagem Layout

E adicione o codigo abaixo:


?
Código
01 <?xml version="1.0" encoding="utf­8"?>
02 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03 android:layout_width="fill_parent"
04 android:layout_height="fill_parent"
05 android:orientation="vertical" >
06
07 <TextView
08 android:layout_width="fill_parent"
09 android:layout_height="wrap_content"
10 android:text="Bem vindo ao programa de troca de telas Esta é a tela 1 escolha a tela que você quer entrar" />
11
12 <Button
13 android:id="@+id/bttela2"
14 android:layout_width="wrap_content"
15 android:layout_height="wrap_content"
16 android:text="Tela2" />
17
18 <Button
19 android:id="@+id/bttela3"
20 android:layout_width="wrap_content"
21 android:layout_height="wrap_content"
22 android:text="Tela3" />
23
24 </LinearLayout>

Resultado você confere abaixo:

Bom nossa primeira tela está pronta, agora vamos adicionar a tela2.

Adicionando Novo Arquivo xml no Android


para adicionar outra tela ou arquivo clique com o botão direito do mouse na pasta layout / “New” / File.

File name “tela2.xml”.

Adicionando um layout na aplicação


Linear Layout (vertical).

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 3 de 12

No arquivo tela2.xml digite o código:


?
Código
01 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
02 android:id="@+id/linearLayout1"
03 android:layout_width="fill_parent"
04 android:layout_height="fill_parent" android:orientation="vertical">
05
06 <TextView
07 android:id="@+id/textView1"
08 android:layout_width="wrap_content"
09 android:layout_height="wrap_content"
10 android:text="Olá estamos na tela2" />
11
12 <Button
13 android:id="@+id/bttela1"
14 android:layout_width="wrap_content"
15 android:layout_height="wrap_content"
16 android:text="Voltar tela1" />
17
18 <Button
19 android:id="@+id/bttela3"
20 android:layout_width="wrap_content"
21 android:layout_height="wrap_content"
22 android:text="Ir para tela3" />
23
24 </LinearLayout>

Resultado você confere abaixo:

Agora vamos criar a terceira e ultima tela.

Adicionando Novo Arquivo xml no Android


para adicionar outra tela ou arquivo clique com o botão direito do mouse na pasta layout / “New” / File.

File name “tela3.xml”".

Adicionando um layout na aplicação


Linear Layout (vertical).

No arquivo tela3.xml digite o código:


?
Código
01 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
02 android:id="@+id/linearLayout1"
03 android:layout_width="wrap_content"
04 android:layout_height="wrap_content"
05 android:orientation="vertical" >
06
07 <TextView
08 android:id="@+id/textView1"
09 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"
11 android:text="Olá estamos na tela3" />
12
13 <Button

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 4 de 12

14 android:id="@+id/bttela1"
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:text="Voltar tela1" />
18
19 <Button
20 android:id="@+id/bttela2"
21 android:layout_width="wrap_content"
22 android:layout_height="wrap_content"
23 android:text="Voltar tela2" />
24
25 </LinearLayout>

Resultado você confere abaixo:

Agora já temos toda a parte de tela do Android, todas devidamente configuradas com os botões e as TextViews.

Codificação do Projeto telas.java


Agora vamos para a parte do código. De um duplo clique no arquivo AppTelas.java e vamos digitar os códigos:
?
Código
01 package br.trocatela.com;
02 import android.app.Activity;
03 import android.content.*;
04 import android.os.Bundle;
05 import android.widget.*;
06 import android.view.*;
07
08 public class AppTelas extends Activity {
09
10 Button bttela2, bttela3;
11
12 @Override
13 public void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.main);
16
17 bttela2 = (Button)
18 findViewById (R.id.bttela2);
19
20 bttela3 = (Button)
21 findViewById(R.id.bttela3);
22
23 bttela2.setOnClickListener(new View.OnClickListener() {
24
25 @Override
26 public void onClick(View arg0) {
27
28 Intent trocatela = new
29 Intent(AppTelas.this,AppTelas2.class);
30 AppTelas.this.startActivity(trocatela);
31 AppTelas.this.finish();
32
33 }
34 });
35
36 bttela3.setOnClickListener(new View.OnClickListener() {
37
38 @Override
39 public void onClick(View arg0) {
40

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 5 de 12

41 Intent trocatela = new


42 Intent(AppTelas.this,AppTelas3.class);
43 AppTelas.this.startActivity(trocatela);
44 AppTelas.this.finish();
45 }
46 });
47 }
48 }

Agora vamos criar uma classe com o nome de AppTelas2, botão direito do mouse em “br.trocatela.com” / “New” / “Class.”

Name AppTelas2.

Codificação do Projeto telas2.java


Agora abra o arquivo AppTelas2.java e digite:
?
Código
01 package br.trocatela.com;
02
03 import android.app.Activity;
04 import android.content.*;
05 import android.os.Bundle;
06 import android.widget.*;
07 import android.view.*;
08
09 public class AppTelas2 extends Activity {
10
11 Button bttela1, bttela3;
12
13 public void onCreate(Bundle savedInstanceState)
14 {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.tela2);
17
18 bttela1 = (Button)
19 findViewById(R.id.bttela1);
20
21 bttela3 = (Button)
22 findViewById(R.id.bttela3);
23
24 bttela1.setOnClickListener(new View.OnClickListener() {
25
26 @Override
27 public void onClick(View arg0) {
28
29 Intent troca = new
30 Intent(AppTelas2.this, AppTelas.class);
31 AppTelas2.this.startActivity(troca);
32 AppTelas2.this.finish();
33 }
34 });
35
36 bttela3.setOnClickListener(new View.OnClickListener() {
37
38 @Override
39 public void onClick(View arg0) {
40
41 Intent troca = new
42 Intent(AppTelas2.this, AppTelas3.class);
43 AppTelas2.this.startActivity(troca);
44 AppTelas2.this.finish();
45
46 }
47 });
48 }
49
50 }

Agora vamos criar uma classe com o nome de AppTelas3, botão direito do mouse em “br.trocatela.com” / “New” / “Class.”

Name AppTelas3.

Codificação do Projeto telas3.java


Agora abra o arquivo AppTelas3.java e digite:
?
Código
01 package br.trocatela.com;
02
03 import android.app.Activity;
04 import android.content.*;
05 import android.os.Bundle;
06 import android.widget.*;
07 import android.view.*;
08
09 public class AppTelas3 extends Activity {

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 6 de 12

10
11 Button bttela1, bttela2;
12
13 public void onCreate(Bundle savedInstanceState)
14 {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.tela3);
17
18 bttela1 = (Button)
19 findViewById(R.id.bttela1);
20
21 bttela2 = (Button)
22 findViewById(R.id.bttela2);
23
24 bttela1.setOnClickListener(new View.OnClickListener() {
25
26 @Override
27 public void onClick(View arg0) {
28
29 Intent troca = new
30 Intent(AppTelas3.this, AppTelas.class);
31 AppTelas3.this.startActivity(troca);
32 AppTelas3.this.finish();
33
34 }
35 });
36
37 bttela2.setOnClickListener(new View.OnClickListener() {
38
39 @Override
40 public void onClick(View arg0) {
41
42 Intent troca = new
43 Intent(AppTelas3.this, AppTelas2.class);
44 AppTelas3.this.startActivity(troca);
45 AppTelas3.this.finish();
46
47 }
48 });
49 }
50 }

Configurando o AndroidManifest.xml
Para concluir esta aplicação abra agora o arquivo AndroidManifest.xml que fica localizado abaixo da pasta “res”, de um duplo clique nele e clique na
guia AndroidManifest.xml para acessar o código, depois de acessar o código digite abaixo da Tag </activity> o código:
?
Código
1 <activity android:name=".AppTelas2"
2 android:label="@string/app_name">
3 </activity>
4
5 <activity android:name=".AppTelas3"
6 android:label="@string/app_name">
7 </activity>

Executando o Projeto
Feito isso agora é hora de testar a aplicação.
Botão direito no projeto “Run As” / Android Applications e conferir o resultado.
Vamos ver abaixo como ficou nossa aplicação:

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 7 de 12

Faça Download do Projeto: Troca Tela (979)

34

Like 5
2 1 0 share 1 share 0 share 0 12

Nenhum artigo relacionado.

Sobre o Autor

Ovidio

Técnico em informática desde 2002. Certificação em Gestão de Tecnologia da Informação, Windows Server 2008. Um Entusiasta da tecnologia e de
seus avanços. Amante das tecnologias mobile, estudando tudo que possível em dispositivos moveis.

Tags:

trabalhando com mais de um layout no


Troca de Activitytroca de layoutstroca de telas no android

Comentários (21):

1.
Responder
joao batista said:
3 de maio de 2012 às 10:51

O meu amigo tudo bem? quando eu executo o código ele mostra esta mensagem:

The application TrocaTela ( process br.trocatela.com) has stopped unexpectedly. Please try again.


Responder
Renato Silva replied:
3 de maio de 2012 às 12:02

Ola João tudo joia ?

Cara você declarou no manifest a sua classe? igual está no post.

2.
Responder
Marcelo said:
8 de maio de 2012 às 0:20

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 8 de 12

Opa, Excelente POST!! Estou utilizando seu blogger como uma das fontes de estudo para iniciar na area de ANDROID. Bem, vamos as questões:
(1). Criei o app conforme orientado, porem no momento de emular, no meu AVD ele diz forçar o fechamento. Estou usando versao 2.2 do android
para testes.

(2). Na versao que disponibiliza para baixar nao acompanha o AndroidManifest.xml

(3). Uma outra informação é que na classificação dos tipos a exemplo neste aqui descrito:
{ android:text=”@string/ESTAMOS NA TELA 2″ }
fica exibindo uma informação de ” Error: No resource found that matches the given name (at ‘text’ with value ‘@string/ESTAMOS NA TELA
2′).”
Se remove o ‘@string/’, mostra a seguinte mensagem: “[I18N] Hardcoded string “ESTAMOS NA TELA 2″, should use @string resource”.

Desculpe a minha ignorância, as prezo pela humildade em dizer que não sei e estar disposto a aprender.

Abraços!

3.
Responder
Marcelo said:
8 de maio de 2012 às 1:11

Opa, em relação as minhas perguntas anteriores, encontrei a causa do problema. Seguem respectivamente:

(1) O programa esta forçando o fechamento por nao haver a classe Activity. Recriado e testado.

(2) Persiste a ausencia do arquivo.

(3) Removido a descrição ‘@string/’ e mesmo com a observação, não caracteriza um erro, porntato, o codigo rodou normal!

Obrigado a atenção!


Responder
Renato Silva replied:
9 de maio de 2012 às 10:47

Fala Marcelo joia!


Cara que bom que achou a respostas.
Peço perdão pela demora.
Mas embreve estaremos com novas postagens.
Abraço

4.
Responder
Evandro said:
10 de maio de 2012 às 15:37

Boa tarde, estou tendo dificuldade na implatação dessa lógica para alternância entre telas. Quando eu coloco ‘@Override’ no método ‘onClick’,
ele não reconhece e dá erro, se eu apago (conforme indica o Eclipse) ele não abre no emulador. Pode me ajudar?


Responder
Renato Silva replied:
10 de maio de 2012 às 16:50

Boa tarde Evandro.


Tudo joia ?
Cara seguinte você observou que disponibilizamos o codigo para Donwload?
Na ultima parte do projeto que diz:
Faça Download do Projeto: Troca Tela
Cara só baixar o projeto importar para o seu eclipse e pronto. utilizar a ideia como desejar ai tu mata o problema na hora.
Obrigado por comentar.

5.
Responder
Tiago said:
7 de julho de 2012 às 0:18

Olá, aconteceu o mesmo problema do primeiro usuário que postou.

“The application ” has stopped unexpectedly. Please try again.”

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 9 de 12

E fiz exatamente igual ao seu. O que mais pode ser?


Responder
Ovidio replied:
7 de julho de 2012 às 21:03

Tudo joia Tiago?


Declarou as telas no arquivo Manifest.xml?

6.
Responder
Wilson said:
25 de agosto de 2012 às 19:24

Quando eu uso o botão voltar do teclado ele fecha o aplicativo. Como resolver isso?


Responder
Ovidio replied:
26 de agosto de 2012 às 8:47

Olá Wilson,
Obrigado por visitar o site, O exemplo acima, quando o Android chama outra tela, ela mata a anterior, para resolver é simples:
Classe AppTelas.java linha 31 e 44 AppTelas.this.finish(); <– Remova
Classe AppTelas2.java linha 32 e 44 AppTelas2.this.finish(); <– Remova
Classe AppTelas3.java linha 32 e 45 AppTelas3.this.finish(); <– Remova

Espero ter ajudado com sua duvida.

7.
Responder
Helena said:
2 de outubro de 2012 às 17:52

Olá! Fiz o descrito no post, tudo funcionou corretamente. Só tive um problema: eu utilizei 3 activities, e todas as 3 foram criadas como se fossem
um aplicativo (3 ícones no menu dos aplicativos). Isso é comum? Como eu poderia resolver este problema?

Obrigada,
Helena


Responder
Renato Silva replied:
1 de janeiro de 2013 às 9:25

Bom dia Helena !!

Pelo que estou entendendo você está me dizendo que :


Cada Activity gerou um app diferente no menu de aplicativos do Android certo?
Bom para isso acontecer você tem que criar 3 projetos distintos. Se isso aconteceu criando apenas 1 projeto, faça os seguintes passos.

1. Destrua o emulador do Android que você está utilizando e criei 1 novo.


2. Baixe o código do projeto e importe para seu WorkSpace e execute no emulador, se caso funcionar, utilize o mesmo como base para fazer
o seu estudo.
Obrigado qualquer duvidas estamos aqui.

8.
Responder
Edvan said:
3 de novembro de 2012 às 21:44

Olá, fiz do modo que está no tutorial, não está dando nenhum erro, mas não vai da tela 2 para a 3… alguma solução? :/

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 10 de 12

Responder
Renato Silva replied:
11 de dezembro de 2012 às 15:13

Ola Edvan tudo bem !


Você colocou essa parte do codigo no seu projeto ??
?
Código
01 bttela2 = (Button)
02 findViewById (R.id.bttela2);
03
04 bttela3 = (Button)
05 findViewById(R.id.bttela3);
06
07 bttela2.setOnClickListener(new View.OnClickListener() {
08
09 @Override
10 public void onClick(View arg0) {
11
12 Intent trocatela = new
13 Intent(AppTelas.this,AppTelas2.class);
14 AppTelas.this.startActivity(trocatela);
15 AppTelas.this.finish();
16
17 }
18 });
19
20 bttela3.setOnClickListener(new View.OnClickListener() {
21
22 @Override
23 public void onClick(View arg0) {
24
25 Intent trocatela = new
26 Intent(AppTelas.this,AppTelas3.class);
27 AppTelas.this.startActivity(trocatela);
28 AppTelas.this.finish();
29 }
30 });

9.
Responder
Andres ad said:
12 de dezembro de 2012 às 14:58

oi, não entendo nada de programação, mas eu posso colocar o projeto seu do player android, dentro do outro projeto, por exemplo: colocar o
player dentro do projeto que mudar de tela, o projeto troca tela android seu. Eu queria acionar o player so quando eu mudase a tela. eu preciso da
tela 1, para o meu layout, depois eu aciono a tela 2, ai tem os botões do player para eu acionar, Abraços. Andres


Responder
Renato Silva replied:
1 de janeiro de 2013 às 9:13

Ola Andres bom dia !!

A respeito de sua dúvida a resposta e a seguinte:


Não tem como você fazer uma acoplagem de um projeto em outro em Java Android.
O que você tem que fazer e fazer uma junção das funcionalidades que você deseja em um único projeto, no caso:
Você fazer 1 projeto apenas que tenha as duas funcionalidades que você deseja.

10.
Responder
Marcelo said:
31 de dezembro de 2012 às 9:45

Olá, muito bom seu tutorial.


Mas estou com o seguinte problema:
Tenho 2 telas, a primeira chama a segunda, nela tenho 1 edittext, qdo digito algo nele e chamo a segunda tela, ao retornar da 2 tela, o campo
edittext perde o valor digitado. Fica como se tivesse estartado o aplicativo novamente. Vc tem alguma idéia do que pode estar ocorrendo ?

Grato,


Responder
Renato Silva replied:
1 de janeiro de 2013 às 9:04

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 11 de 12

Bom dia Marcelo!

O que acontece:
Quando volta para primeira tela, realmente há uma destruição da tela onde você estava, por isso que quando você retorna para tela 2 o valor
de seu editTexte está vazio.
Sim mas o que fazer para consertar isso.
Crie uma variável estática na primeira tela que chama a segunda tela e atribua o valor do EditText a ela. Claro que há mais formas de
resolver esse problema, mas estou apenas te dando uma opção rápida.
Em escopo de classe no caso:
?
Código
01 Public Class MinhaPrimeiraTela extendes Activity{
02 //Variavel apenas para manter o valor do EditText da tela posterior armazenada.
03 public Static String minhaVariavelStatica;
04
05 @Override
06 public void onCreate(Bundle savedInstanceState) {
07 super.onCreate(savedInstanceState);
08 setContentView(R.layout.main);
09
10
11
12 metodoChama2Tela();
13
14 }
15
16 }
17
18 Public Class MinhaSegundaTela extendes Activity{
19
20 Private EditText txtSeuEditText;
21 @Override
22 public void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.main);
25
26
27 txtSeuEditText = (EditText) findViewById(R.id. txtSeuEditText);
28
29
30 //Verifica se o EditText está vazio se estiver atribui o valor da variável estática no edit text.
31 if(txtSeuEditText.text == null ){
32
33
34 txtSeuEditText.text = MinhaPrimeiraTela. minhaVariavelStatica;
35
36
37
38
39
40
41 }
42
43
44
45
46
47 //Esse codigo aqui voce vai ter que colocar no evento onclick de um botao, ou ate mesmo em um envento do proprio EditTex.
48 MinhaPrimeiraTela. minhaVariavelStatica = txtSeuEditText.text;
49
50
51
52 }
53
54 }

Bom espero que entenda. Qualquer dúvida estamos à disposição.

11.
Responder
Arian said:
17 de janeiro de 2013 às 14:32

Consegui fazer, muito obgdo!


Responder
Renato Silva replied:
18 de janeiro de 2013 às 10:53

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013
Trabalhando Com Mais De Uma Tela No Android | Página 12 de 12

Olá Arian.
Ficamos felizes em Ajudar.
A DevMobileBrasil agradece.

Deixe uma resposta

Nome:

Email:

Website:

Comentar!

Qual a soma entre:

1+1

• Novidades
Inscreva-se na newsletter da Dev Mobile Brasil preenchendo os campos abaixo, e receba nossas novidades por e-mail.

Cadastrar

• Enviar Consulta

• Categorias
◦ Android (42)
◦ BlackBerry (2)
◦ IOS (2)
◦ Windows Mobile (1)
◦ Windows Phone 7 (1)
• Parceiros
◦ Advpl Brasil
◦ C# Brasil
◦ Projetos e TI
• Tags
Android Android examplesandroid exemplosAndroid exercisesandroid Spinner android
tutoriaisandroid tutorialandroid tutorials aprenda Android aprenda a
aplicativo com duas telas no androidaplicativos android

programar em AndroidAprenda a programar para androidaprendendo a programar


para androidaprendendo programar em androidaprendendo programar para android CheckBox no androidconfigurando sdk android

conhecendo o componente Intent Androidconhecendo o componente Intent no Androiddeveloping for


eclipseconfigurando sdk android eclipse Windows

Androidexemplos Androidexercicios android learning Androidlearning to


instalando o sdk do android

program Androidlearning to program for Androidlearning to program in Androidlearn to


program for Androidprogramando para android Sample of Tab Widget In AndroidSample Tab Widget In AndroidTab Widget no androidTrabalhando com Activity no
Androidtrabalhando com Androidtrabalhando com Android conhecendo Intent Androidtrabalhando com CheckBox no androidtrabalhando com mais de uma tela no androidtrabalhando com mais
de um layout no androidtrabalhando com Spinner no androidTroca de Activitytroca de layoutstroca de telas no androidtutorial android

• Pedimos que: Por favor curta a nossa nova Fanpage abaixo, pois vamos finalizar a antiga Fanpage.http://t.co/OEPFYDzL 421 days ago

Mais Tweets

http://devmobilebrasil.com.br/android/trabalhando-com-mais-de-uma-tela-no-android/ 18/10/2013

Você também pode gostar