Implementar navegação entre telas utilizando padrão Controller

Olá pessoal,
estou fazendo um projeto e estou querendo fazer a navegação entre telas, onde o tratamento dos botões de acontecer em uma classe separada da activity deste. Alguém sabe como fazer?

Você quer tratar os eventos de click nos botões em outra classe??

Basta você criar uma classe que implemente a interface OnClickListener e, no onCreate() da sua activity, obter uma referência ao objeto da tela que representa o botão (Button) e invocar nele o método setOnClickListener(), passando como parâmetro uma referência de um objeto dessa classe que você criou. Desta forma você vai tratar o evento em outra classe.

Não sei o motivo real pelo qual você quer seguir esta abordagem. Normalmente a própria activity faz o tratamento, porque no Android ela já faz o papel do controller.

Sim, queria fazer isso mesmo, já consegui, mas surgiu outro problema, preciso ter a referencia de uma fachada para todas essas telas, Ex: Tela Principal: 2 Botoes (btTarefas, btCategorias), ao clicar em categoria deve aparecer uma outra tela, Menu Categoria: 2 botões(btAddCategoria, btListarCategoria, btRemover, btCategoria), ao clicar em btAddCategoria —> btAddCategoriaMae, btCategoriaFilha, clicando em btAddCategoriaMae----> Chegou a hora de receber os dados e para utilizar um método da fachada.

Utilizei um Intent para iniciar cada Activity, mas não consegui passar a fachada como parâmetro, daí minha nova dúvida.

Att,

Estou fazendo um projeto da disciplina de POO, daí estamos implementando desta maneira para aprender alguns desses padrões.

O Android permite a passagem de parâmetros através das intents. Dê uma olhada no método putExtras() e getExtras() das intents.

Já se você tem objetos que precisa que fiquem disponíveis para toda a sua aplicação, você pode também criar uma classe para fornecer estas referências. Esta classe pode ser implementada usando outro padrão de projeto, chamado singleton. O singleton garante que você vai ter apenas uma instância da classe durante a execução da sua aplicação.

Abraço!

Ok, consegui resolver usando o singleton, uma ótima solução!
Agradeço a ajuda de todos!

Att,
Fernando Mateus de Oliveira

Fernando Mateus,

Eu estou tendo o mesmo problema que você no meu caso é para o meu TCC, já procurei em várias fontes no google mais não achei anda que me ajudasse a conseguir fazer isso... Então por favor poderima me dizer como conseguiu implementar os eventos das activitys em outras classes(controllers) se possível mostrar exemplo com código? Ctosin eu tentei fazer o que você disse só que deu erro na minha activity segue o código da mesma:

package com.projetofinal.sisodonto.view;

import com.projetofinal.sisodonto.controller.MainMenuController;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainMenu extends Activity {
	private Button btSair;
	private MainMenuController mainMenuController;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main_menu);
		
		inicializarController();// aqui eu criei o objeto controller que vai tratar os eventos dessa activity
		
		btSair = (Button)findViewById(R.id.btSair); // aqui eu tentei pegar a referência do botão
		btSair.setOnClickListener(mainMenuController); //aqui eu usei o método setonClickListener passado como argumento o objeto controller que eu criei
	}
	
	public void inicializarController(){
		this.mainMenuController = new MainMenuController();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main_menu, menu);
		return true;
	}

}

O código da minha classe de controle que iria tratar os eventos da activity acima:

package com.projetofinal.sisodonto.controller;

import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;

public class MainMenuController implements OnClickListener {

	@Override
	public void onClick(DialogInterface arg0, int arg1) {
		// TODO Auto-generated method stub

	}

}

Atenciosamente