Navegação em Android usando botões

3 respostas
R
olá pessoal, sou novato em Android, por isso não sei muito bem eu gostaria de fazer navegações entre telas xml usando botões. consegui fazer um botão mudar de tela mas só funciona no primeiro click. meu código:
public class ControleFiscalActivity extends Activity {
	/** Called when the activity is first created. */
	Button btnGasto;
	Button btnGanho;
	Button btnMeta;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		exibirMain();
		btnGasto = (Button) findViewById(R.id.btnGasto);
		btnGanho = (Button) findViewById(R.id.btnGanho);
		btnMeta = (Button) findViewById(R.id.btnObjetivo);
		// chamar o metodo de mostrar tela ganho (Index)
		btnGanho.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {
				exibirMain();
			}
		});

		// chamar o metodo de mostrar tela gasto
		btnGasto.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {
				exibirGasto();
			}
		});

		// chamar o metodo de mostrar tela meta
		btnMeta.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {
				exibirMeta();
			}
		});

	}

	// metodo exibir gasto
	public void exibirGasto() {
		setContentView(R.layout.gasto);
	}

	// metodo exibir ganho(main)
	public void exibirMain() {
		setContentView(R.layout.main);
	}

	// metodo exibir meta
	public void exibirMeta() {
		setContentView(R.layout.meta);
	}
}

acho que é assim, que se faz, certo?
se alguém puder me ajudar, valeu

3 Respostas

D

Fala roregk, blz?

Então cara, para fazer a navegação entre telas no Android você precisa utilizar o método startActivity(Context ctx, Class clazz), ele possui algumas assinaturas, o que eu costumo utilizar é esse mesmo que eu descrevi, onde o parametro ctx você pode passar um this já que Activity estende Context e o segundo parâmetro é o nome da tela(Activity) que você quer “abrir”.

O código ficaria mais ou menos assim…

Espero ter lhe ajudado…

Abrs

D

Um exemplo, só para complementar a explicação do nosso amigo douglasduarte :
Exemplo: estamos na tela principal com um menu e clicamos para cadastrar. O método CarregaTelaCadastro será chamado, como mostrado abaixo, e a linha startActivity(new Intent(this, CadastroVeiculo.class)); indica para qual tela será "redirecionado" a aplicação.

public class AppEstacionamento extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        CarregaTelaPrincipal();
 
    }
    
    void CarregaTelaPrincipal(){
		setContentView(R.layout.main);
		
		Button btCadastrar = (Button) findViewById(R.principal.btCadastrar);
		Button btConsultar = (Button) findViewById(R.principal.btBuscar);
		Button btListar = (Button) findViewById(R.principal.btListar);
		
		//Se clicar no botão cadastrar;
		btCadastrar.setOnClickListener(new View.OnClickListener() {			
			public void onClick(View v) {
				CarregaTelaCadastro();				
			}
		});
 
 //Método para carregar a tela de Cadastro;
    public void CarregaTelaCadastro(){
    	startActivity(new Intent(this, CadastroVeiculo.class));
    }

Espero ter ajudado!

D
Intent intent = new Intent(this, Activity.class);
				intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
				this.startActivityForResult(intent, CODIGO_RETORNO); // se vc quiser quer retorne algo para esta activity quando a proxima for finalizada ou

                                 this.startActivityForResult(intent, CODIGO_RETORNO); // se vc quiser quer apenas que inicia a proxima activity
Criado 15 de maio de 2012
Ultima resposta 17 de mai. de 2012
Respostas 3
Participantes 4