Interação entre Fragments e Activities

0 respostas
aboult

Boa tarde pessoal.

Antes de mais nada um feliz ano novo ao pessoal.

Estou começando a trabalhar com Fragments e eu estou tendo problemas e dúvidas, não sei se é erro de implementação ou se é falta de conhecimento, já li boa parte no Developers e também pesquisei nos tópicos aqui e no Google em geral.

Meu problema é o seguinte:

Eu tenho uma FragmentActivity onde eu tenho um actionBar com 3 Abas, inicialmente havia feito um negócio de outro mundo aqui para conseguir funcionar. Ai analisando com mais calma vi que não estava correto e alterei a forma de implementação.

Eu criei então um layout: activity_cadastro_cliente e defini os fragments:

<fragment
    	android:layout_width="fill_parent"
    	android:layout_height="fill_parent"
    	class="dataplus.app.dataplussmart.CadastroClienteDados"
    	android:id="@+id/fragDados" />
	
	<fragment
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    class="dataplus.app.dataplussmart.CadastroClienteEntrega"
	    android:id="@+id/fragEntrega" />
	
	<fragment
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    class="dataplus.app.dataplussmart.CadastroClienteCobranca"
	    android:id="@+id/fragCobranca" />

Só que ai comecei a ter problemas no TabListener, quando eu clicava na segunda Tab ele jogava o Tab2 em cima do Tab1 como se estivessem exibindo ambos.

Consegui resolver isso tirando o setContentView do OnCreate do meu FragmentActivity e ai funcionou normalmente meus Tabs e as transições entre eles.

Só que agora entra uma dúvida conceitual, eu preciso que por exemplo quando eu carregar um cliente eu preencha as 3 abas com os dados do objeto Cliente que tenho na FragmentActivity.

Como eu faço esse acesso? Eu faria a FragmentActivity carregá-los através do findFragmentByTag ou no Start dos Fragments eu buscaria pelo Objeto carregado que eu tenho na FragmentActivity principal?

Porque quando eu tento fazer o acesso dessa maneira:

fm = getSupportFragmentManager();
CadastroClienteDados fragDados = (CadastroClienteDados) fm.findFragmentByTag("dados");
		fragDados.identificacao.setText(cliente.getIdentificacao().toString());

No Manager ele ainda só contém a primeira aba e não as demais.

Eu tentei explicar de forma resumida, mas acho que não ficou tão resumida, se alguém puder me ajudar e precisar de mais código para entender sem problemas.

Obrigado desde já.

Criado 2 de janeiro de 2013
Respostas 0
Participantes 1