quinta-feira, 31 de janeiro de 2013

Dica: Como chamar métodos em activities internas da TabActivity

  Problema: Atualizar automaticamente dados entre abas de uma TabActivity, quando mudar de aba. 

  Explicando melhor, você tem n abas em uma TabActivity e cada aba atualiza uma parcela dos dados (ou todos) que são compartilhados por todas as abas. Cada aba é controlada por uma acitivity. Então, quando uma aba for selecionada, muda de view e muda de activity: a solução parece ser simples: vamos usar um dos métodos de retorno da activity, tipo onStart ou onResume certo? Errado, infelizmente nenhum desses métodos é chamado.

  Já tinha encontrado problemas parecidos com esse, mas não tinha encontrado uma solução satisfatória.

  Recentemente, um colega estava com o mesmo problema. Pesquisando em alguns lugares, pegando dicas em outros, juntando com alguns testes que tinha feito, chegamos em uma solução interessante.

  A solução usa duas interfaces, uma existente no TabHost (OnTabChangedListener) e outra definida na TabActivity e implementada nas activities que controlam cada tab (OnSingletonUpdatedListener).

 Os dados compartilhados estão num Singleton.

Na TabActivity:



E nas activities das abas:


Obs: Não testei essa solução exaustivamente, se encontrarem algum problema ou se funcionar bem, por favor, me avisem!
Grato

sábado, 29 de dezembro de 2012

Meus estudos


Dando uma revisada geral no Android.
Estou aproveitando o tempo maior disponível nos últimos dias e nos próximos para dar uma lida geral na documentação do Android.
Com isso também pretendo fazer um plano de estudos para os próximos meses.
Abraços