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™
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.bernardi09@gmail.com>
Para: androidbrasil-dev@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.






0 comentários:
Postar um comentário