[androidbr​asil-dev] Não retorna para a tela principal

91 views
Skip to first unread message

Carlos Cleber A. Silva

unread,
May 27, 2012, 2:38:09 AM5/27/12
to androidb...@googlegroups.com

Olá Pessoal!

Alguém de vocês poderia dar-me uma ajuda?

Tenho uma classe Principal, que  chama outra tela, que tem  a classe Sobre, até aqui funciona, o meu problema  começa quando estou na tela Sobre, clico no botão voltar que deveria retornar para a tela principal não acontece nada, sendo que já tenho os métodos informados, outro problema também quando clico no botão do emulador voltar, ele  fecha e volta para a tela do android dos ícones, estou informado as classes que estou usando e o AndroidManifest.xml.

Muito obrigado!

package br.com.teste;

 

import android.app.Activity;
import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class Principal extends Activity {

 

                Button btSobre;

               

                @Override

                public void onCreate(Bundle savedInstanceState) {

                               super.onCreate(savedInstanceState);

                                                               setContentView(R.layout.main);

 

                               //Cast button

                              

                               btSobre = (Button) findViewById(R.id.btSobre);                                           

 

                               btSobre.setOnClickListener(new View.OnClickListener() {

 

                                               public void onClick(View v) {

                                                              

                                                               chamaSobre();

 

                                               }

                               });

               

                public void chamaSobre(){

                              

                               setContentView(R.layout.sobre);

                }

}

 

 

package br.com.teste;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class Sobre extends Activity {                     

   

                @Override

                public void onCreate(Bundle savedInstanceState) {

                               super.onCreate(savedInstanceState);

               

        setContentView(R.layout.sobre);

 

                Button btSobreVoltar = (Button) findViewById(R.id.btSobreVoltar);    

      

                btSobreVoltar.setOnClickListener(new View.OnClickListener() {

 

            public void onClick(View v) {

               

                voltarTelaPrincipal();

               

            }

        });

    }

                private void voltarTelaPrincipal(){                                    

                               //Intent intent = new Intent(this, Principal.class);

                               startActivity(new Intent(this, Principal.class));

                }

}

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="br.com.teste"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name" >

        <activity

            android:name=".Principal"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity> 

      </application>

</manifest>

Eduardo Baião

unread,
May 27, 2012, 3:07:57 AM5/27/12
to androidb...@googlegroups.com
O código abaixo está trocando o layout da tela, quando na verdade o
que você quer é chamar a Actiity "Sobre":

public void chamaSobre(){

setContentView(R.layout.sobre);
}
}

Ao invés disso, faça assim:

Intent intent = new Intent();
intent.setClass(this, Sobre.class);
startActivity(intent);

Você também tem que registrar essa segunda Activity no arquivo manifest.

Outra coisa: No Android você não deve colocar na tela botões do tipo
"Voltar". Isso é coisa do iPhone. :)

Recomendo que você leia um pouco mais sobre o SDK, seja no site do
Google ou em algum livro.


Em 27 de maio de 2012 03:38, Carlos Cleber A. Silva
<carlosc...@gmail.com> escreveu:

Carlos Cleber A. Silva

unread,
May 27, 2012, 11:24:23 AM5/27/12
to androidb...@googlegroups.com
Obrigado Eduardo,
Então, Actiity "Sobre" estou chamando normalmente, o problema é quando estou nela e não volta para a tela principal.
Obrigado pelas dicas,
 
Att, Carlos

luciofm

unread,
May 27, 2012, 11:37:29 AM5/27/12
to androidb...@googlegroups.com
Não, você não está chamando a Activity sobre, você esta chamando um setContentView passando o layout do seu sobre...

Por um acaso você assiste/assistiu os videos do Neri?

Lúcio Maciel
luc...@gmail.com


2012/5/27 Carlos Cleber A. Silva <carlosc...@gmail.com>

Carlos Silva

unread,
May 27, 2012, 12:38:29 PM5/27/12
to androidb...@googlegroups.com
Caro Lúcio,
 
É, andei assistindo por uns dias, então tudo que fiz esta errado?
 
Obrigado!

Paulo BlasterX

unread,
May 27, 2012, 2:20:27 PM5/27/12
to androidb...@googlegroups.com
Então meu amigo, dá uma lidinha em algum material aí pra vc entender melhor...

Pra você chamar outra activity vc pode usar no seu ChamaSobre()

                    finish();
                    startActivity(new Intent("br.com.teste.Sobre"));

O setContentView é apenas uma forma de jogar um layout nessa activity que vc está.. =) Sacou ?


2012/5/27 Carlos Silva <carlosc...@gmail.com>

Danilo Monteiro

unread,
May 27, 2012, 4:59:06 PM5/27/12
to androidb...@googlegroups.com
Neri ataca mais uma vez

2012/5/27 Paulo BlasterX <paul...@gmail.com>



--
Danilo Monteiro Ribeiro
"O único lugar onde o sucesso vem antes do trabalho é no dicionário."
"Faça com que seus SONHOS tenham INVEJA de seu FUTURO"
Graduando em Sistemas de Informação
http://lattes.cnpq.br/9054177799378154




luciofm

unread,
May 27, 2012, 6:36:03 PM5/27/12
to androidb...@googlegroups.com

Então prometa que nunca mais irá assistir para ganhar ajuda

Lúcio Maciel
Sent from a mobile device

Reply all
Reply to author
Forward
0 new messages