Passar uma Objeto como parametro na Intent

4,204 views
Skip to first unread message

Diego Ampessan

unread,
Sep 12, 2011, 4:25:35 PM9/12/11
to androidb...@googlegroups.com, android-bra...@googlegroups.com
Olá pessoal, boa tarde.

Uma dúvida, como faço para passar um objeto da minha classe para a intent ?

Explicando melhor, eu tenho um objeto que será populado pela minha activity atual (this), porem quero jogar todos os objetos que eu peguei para uma outra activity (ResultadoActivity) onde vai me trazer os resultados com base na activity que pega as informações do usuário. É possível fazer isso?








Bundle objParam = new Bundle();

 //objParam.ADDMEUOBJETO(key,value)

Intent nova = new Intent(this, ResultadoActivity.class);
nova.putExtra("Objeto", objParam);

startActivity(nova);

--
Att.
Diego Ampessan
Microsoft MTA

www.diegoampessan.com.br


Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação  - "Albert Einstein "

luciofm

unread,
Sep 12, 2011, 4:30:31 PM9/12/11
to androidb...@googlegroups.com
Usa fragments numa mesma activity :)

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


2011/9/12 Diego Ampessan <ampe...@gmail.com>

Neto Marin

unread,
Sep 12, 2011, 4:31:43 PM9/12/11
to androidb...@googlegroups.com

Júlio Cesar Bueno Cotta

unread,
Sep 12, 2011, 4:34:43 PM9/12/11
to androidb...@googlegroups.com
Pelo o que entendi..vc vai ter em serializar o objeto (public class OBJ implements Serializable...bla bla bla)

extras.putSerializable("MEU_OBJETO", obj);

para recuperar

OBJ obj = (OBJ) extras.getSerializable("MEU_OBJETO");
--
Júlio Cesar Bueno Cotta
Bacharel em Ciência da Computação pela UFV
Mestrando em Ciência da Computação pela UFABC

luciofm

unread,
Sep 12, 2011, 4:36:38 PM9/12/11
to androidb...@googlegroups.com
Sim, mas ele quer passar um objeto complexo como parametro...

Ai teria que fazer ele implementar Parcelable (http://android.ankara-gtug.org/reference/android/os/Parcelable.html) e é um saco isso...

Acho que usar fragments pra isso resolve, voce tem uma activity com um ListFragment, quando seleciona um item, faz uma transição para o fragment que exibe o item.

Quando o cara seleciona o item na lista (no fragment da lista), poderia chamar uma callback na Activity, passando o objeto para ela, e a activity faz a transição para o novo fragment, passando para ele esse objeto...

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


2011/9/12 Neto Marin <neto...@gmail.com>

Diego Ampessan

unread,
Sep 12, 2011, 7:17:26 PM9/12/11
to androidb...@googlegroups.com
Dae galera, obrigado a dicas, deu certo !!!

Postando a solução:

Como no post do neto e reforçado pelo comentário do Julio, tive que deixar minha classe Serializable

ex:

public Class MINHACLASSE implements Serializable
{
   ....
}

No meu caso, a MINHACLASSE tinha outros objetos dentro dela, portando tive que deixar todas minhas classes Serializable.

Na Activity atual, passei o objeto como parametro para a ResultadoActivity:

Intent nova = new Intent(this, ResultadoActivity.class);
nova.putExtra("Objeto", objResultado);


o objResultado é um objeto do tipo MINHACLASSE


Na ResultadoActivity, apenas recuperei esse objeto.

Intent intent = getIntent();
MINHACLASSE registro = (MINHACLASSE) intent.getSerializableExtra("Objeto");




@Lucio, não precisei implementar o parcelable, pode resumir para que serve o mesmo?



Valeu galera ! õ/
Reply all
Reply to author
Forward
0 new messages