domingo, 1 de dezembro de 2013

Exemplo de uso do Singleton

 Este exemplo usa um Singleton para salvar dados provenientes de diversas activities e usá-los em uma outra activity.
 A lógica do processo é o seguinte:
 -Na activity inicial inicializa os campos
-Na activity 1, salva o(s) campo(s). No exemplo uso um TextWatcher para salvar os dados logo após a edição.
-Na activity n, salva o(s) campo(s).
-Na activity que vai usar os campos basta usar os campos do singleton.

 Primeiro crie a classe MySingleton.java:

Inicializa o Singleton.

Seta o listener para capturar as alterações:

Finalmente, recupera os dados:

Não coloquei checagens, mas é necessário consistir os dados para garantir que são válidos.

 Não testei os códigos, é apenas um roteiro. Caso testem, por favor, postem seus comentários. 

Abraços

9 comentários:

  1. Não entendi a parte de inicializar o Singleton. Em qual activity faço a inicialização? Tenho um projeto com Fragments e 3 Tabs. Um EditText na Tab1 e Tab2 e um botão na Tab3.

    ResponderExcluir
    Respostas
    1. Depende de como está estruturado o seu app.
      No seu caso, provavelmente, não precisa desse procedimento.

      Excluir
    2. Mas onde declaro o Singleton no meu projeto? Não tem que inicializar? O código do recuperar pode colocar no botão que ta na Tab3?

      Excluir
    3. 1- Cria uma classe
      2- O Singleton é inicializado na primeira vez que é usado
      3- Sim.

      Excluir
    4. Vc diz criar a classe Singleton, certo? Não entendi o passo 2. Seria inicializar nos códigos das Tabs, que seriam os Frags?

      Excluir
    5. Tenho essa classe:

      public class Pessoa {
      private int codigo_pes;
      private String nome_pes;
      private String email_pes;
      private String telefone;
      private String observacao;

      public Pessoa() {
      }

      public int getCodigo_pes() {
      return codigo_pes;
      }

      public void setCodigo_pes(int codigo_pes) {
      this.codigo_pes = codigo_pes;
      }

      public String getNome_pes() {
      return nome_pes;
      }

      public void setNome_pes(String nome_pes) {
      this.nome_pes = nome_pes;
      }

      public String getEmail_pes() {
      return email_pes;
      }

      public void setEmail_pes(String email_pes) {
      this.email_pes = email_pes;
      }

      public String getTelefone() {
      return telefone;
      }

      public void setTelefone(String telefone) {
      this.telefone = telefone;
      }

      public String getObservacao() {
      return observacao;
      }

      public void setObservacao(String observacao) {
      this.observacao = observacao;
      }
      }

      Excluir
    6. Não entendi esse listener. Que parte do código eu coloco ele?

      Excluir
    7. Caro Anônimo, infelizmente não tenho condições de dar esse tipo de ajuda pelo blog.
      Sugiro tentar ajuda na comunidade no Portal Android ou no GUJ - Respostas.
      Abraço

      Excluir
    8. E o que postei ai, me ajuda. To tentando fazer.

      Excluir