Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: Passar um ArrayList de um S herlockFragment para outro durante mudança de Tabs.

Bom dia.


Obrigado pela ajuda Rogerio.
Eu estou iniciando em programação Java/Android, nunca usei HashMap mas já estou pesquisando aqui e olhando alguns exemplos para ver como funciona.

Só que pelo que eu entendi com relação a passagem entre os Fragments o que você sugeriu, é que eu grave os objetos no HashMap dentro de cada Fragment? Cada Fragment responsável por um Tab teria um HashMap?
Agora quanto a Herança, eu tentei até implementar que os 3 SherlockFragment's sejam extensões do SherlockActivityFragment(Onde crio as Abas e tenho os métodos de gravação, exclusão e etc responsáveis pelos 3 Fragments). Mas não consegui implementar exatamente. Eles já são extensões de SherlockFragment's e o principal de um SherlockActivityFragment.

On Wednesday, December 5, 2012 7:35:12 AM UTC-2, Rogerio Esteves wrote:
Porque  você não usa um hashmap e guarda os dados das tabs nela onde a key seria o getPosition e o object seria os dados de sua tab. Se vc quiser recuperar os dados basta chamar hashMap.get(tab.getPosition()) se vier nulo é pq não salvou os dados ai vc salva e trafega esse hash pelos seus fragments pelo set e get desse hash que devera ser criado em cada tab ou usa herança.
Ta tela da tab 3 dependendo o valor do checkbox vc recupera os dados da tab 2 assim.
getHashMap().get(2) e vc tera os dados da sua tab 2.  O principal é vc trafegar o hash em cada evento do click da tab

Conectado pelo MOTOBLUR™


-----Mensagem Original-----
De: Guilherme Bernardi <gui.ber...@gmail.com>
Para:
androidb...@googlegroups.com
Enviado:
quarta-feira, 5 de dezembro de 2012 01:55:17 GMT+00:00
Assunto:
[androidbrasil-dev] Re: Passar um ArrayList de um S herlockFragment para outro durante mudança de Tabs.

Bom seria mais para trabalhar em tela e depois carregar e persistir o objeto como um todo.

Meu problema anterior é que eu estava tentando que os botões da ActionBar assumissem o papel das 3 SherlockFragments e que por exemplo se preenchesse algo na primeira Tab e mudasse para a segunda mais quisesse voltar a primeira, meus dados ainda estivessem lá.

O que eu fiz para resolver isso foi:

Criei um ArrayList público na SherlockActivityFragment(Principal onde é criada a actionBar e feito controle dos Tabs):
ArrayList<SherlockFragment> arrFragment;

E dentro do NavTabListener onde implemento os Fragments, eu faço um controle em cima deste Array onde por exemplo, quando eu troco o Tab eu verifico e gravo o Fragment atual:

if(tab.getPosition()==0) {
   
if(arrFragment.size()>0){
arrFragment.set(0, this.fragment);
}else {
arrFragment.add(0, this.fragment);
}
ft.remove(fragment);
}

E também acesso o Fragment novo, verificando caso ele não exista eu o carrego a primeira vez, senão eu carrego o que eu já tenho armazenado:

if(tab.getPosition()==1){
if(arrFragment.size()>1){
ft.replace(android.R.id.content, arrFragment.get(1));
}else {
fragment = new CadastroClienteEntrega();
ft.replace(android.R.id.content, fragment);
}
}

Dessa forma agora tenho controle sobre os Fragments e os dados contidos em cada um deles. Pelo menos foi a maneira que eu implementei, não sei se tem maneiras até mais simples e mais corretas para se implementar algo nesse sentido.

Meu problema com isso agora seria:

Por exemplo a Tab 2 (Entrega) e Tab 3 (Cobranca).
Elas tem os mesmos campos e pertence a um mesmo objeto ClienteEndereco. Já a Tab 1 pertence ao objeto Cliente.

Especificamente na Tab 2 e Tab 3, eu tenho um checkbox na Tab 3 onde o usuário define que caso checado, o endereço de cobrança é o mesmo de entrega.
Então quando marcado este checkbox os dados que já estariam presente na Tab 2 (Fragment 2 que já está armazenado no ArrayList) seja carregado e exibido em tela na Tab 3, para isso eu precisaria passar esse ArrayList na mudança de Tab junto com o Fragment.

Há essa possibilidade?

Obrigado pela atenção.


On Tuesday, December 4, 2012 11:12:51 PM UTC-2, Guilherme Bernardi wrote:
Boa noite pessoal.

É possível passar um ArrayList do tipo SherlockFragment para outro SherlockFragment durante a mudança de abas?

Eu estou trabalhando com o ActionBar Sherlock e 3 Tabs onde a primeira é uma SherlockActivityFragment e as outras 3 que são infladas dentro de cada tab são SherlockFragment's.

Como as 3 tabs fazem parte e compõem um mesmo objeto a ser persistido no banco SQLite, eu precisava trabalhar com os dados das 3 em conjunto, dessa forma montei uma estrutura onde eu monto uma coleção com os fragments e trabalho com eles, o problema é que a última Tab depende de dados carregados na Tab anterior e quando eu acessar a última tab necessitaria dos dados carregados na Tab 2.

Alguém já fez algo semelhante?

Obrigado.

--
 
 

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário