Olha, estou pasmo pelo que percebi recentemente ao precisar desse recurso…
No Android, para iniciar e/ou enviar dados de uma activitty para outra, se usa a classe Intent, e com esta classe usa-se o método “putExtra” para inserir dados, que podem ser recuperados em outra Activity, por exemplo:
//Activity superior:
Intent proximo = new Intent(this,ProximoActivity.class);
proximo.putExtra("mensagem","Ola tudo bem?");
//Activity inferior(proxima):
Bundle dados = getIntent.getExtras();
String mensagem = dados.get("mensagem");
Olha só que coisa estranha, ao setar dados no Bundle dentro do Intent, você só consegue inserir dados fixos como String, Integer, Boolean,Long…
Agora para recuperar do Bundle você consegue pegar a super classe Object através do método “get()”…
isso me incomodou muito quando descobri, porque para que eu possa enviar algum objeto personalizado de meu projeto eu não consigo enviar como “Object”, eu tenho então que fazer uma gambiarra e implementar uma das classes do Android em minhas classes do projeto, como a seguir:
//Implementação de Serializable:
public class Exemplo implements Serializable{}
///Ou implementação de Parceable:
public class Exemplo implements Parceable{ }
e só assim consigo enviar uma classe personalizada pelo Bundle do Intent:
Intent proximo = new Intent(this,ProximoActivity.class);
proximo.putExtra("objetoExemplo",new Exemplo());
Agora eu pergunto, porque a equipe que desenvolver o framework simplesmente não adicionou um método putExtra(String key,Object object) na classe Bundle ?