Tecnologia do Blogger.
RSS

[androidbrasil-dev] Re: Passar um ArrayList de um SherlockFragment 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