Recuperar valores de outra classe

8 respostas
G

Galera, minha dúvida é a seguinte, tenho uma classe estática para Clientes, com seus getters e setters,

Na classe “A”, quando eu chamo um Clientes.setNome("valor"); eu consigo recuperar o valor utilizando o Clientes.getNome();

Como faço, para após setar esse valor na classe “A”, recuperar esse valor na classe “B”? pois quando chamo o Clientes.getNome(); o valor retorna Nulo!

8 Respostas

lina

Oi,

Utiliza-se “getters e setters” para garantir a proteção de atributos e métodos da classe. Logo, não é necessário criar uma classe do tipo estática.

Sugiro postar um outro exemplo demonstrando o seu problema, apresentando a ClasseA, ClasseB e ClasseProteção para que possamos ajuda-lo da melhor maneira possível.

Tchauzin!

G

Oi lina, obrigado pela ajuda,

Veja bem, a definição do meu problema é simples, a classe “A”, é uma classe que contém o cabeçalho de uma venda, a partir dela eu chamo outra classe, que contém uma lista de clientes, nesta classe ao clicar no cliente desejado, eu quero guardar o nome desse cliente na memória, para quando eu voltar para a classe do cabeçalho, eu preencher um textfield com esse valor!

lina
gferraz.ti:
Oi lina, obrigado pela ajuda,

Veja bem, a definição do meu problema é simples, a classe "A", é uma classe que contém o cabeçalho de uma venda, a partir dela eu chamo outra classe, que contém uma lista de clientes, nesta classe ao clicar no cliente desejado, eu quero guardar o nome desse cliente na memória, para quando eu voltar para a classe do cabeçalho, eu preencher um textfield com esse valor!

Oi,

O seu problema então é que quando a classe "B" é encerrada, seus atributos são apagados da memória. Olhe uma solução:

public class ClasseA {

   // Instancia da estrutura cliente
   ClasseCliente
   io_cliente = new ClasseCliente();

   public ClasseA() {

      // Instancia a ClasseB enviado como parametro a ClasseCliente.
      new ClasseB(io_cliente);
      System.out.println("Nome do cliente: "+io_cliente.getName());
   }
}

public class ClasseB {

   // Instancia da estrutura cliente
   public ClasseB(ClasseCliente ao_cliente) {

      // Faz a ação e acrescente o nome.
      ao_cliente.setName("TESTE");

   }
}

public class ClasseCliente {

   private String is_name;

   public void setName(String as_name) {

      is_name = as_name;

   }

   public String getName() { return is_name; }

}

Você também pode usar a instancia da classe "B" para isso:

public class ClasseA {

   public ClasseA() {

      // Instancia a ClasseB enviado como parametro a ClasseCliente.
      ClasseB io_class =  new ClasseB();
      System.out.println("Nome do cliente: "+io_class.getClient().getName());
   }
}

public class ClasseB {

    // Instancia da estrutura cliente
   ClasseCliente
   io_cliente = new ClasseCliente();

   // Instancia da estrutura cliente
   public ClasseB() {

      // Faz a ação e acrescente o nome.
      io_cliente.setName("TESTE");

   }

   public ClasseCliente getClient() { return io_cliente; }
}

public class ClasseCliente {

   private String is_name;

   public void setName(String as_name) {

      is_name = as_name;

   }

   public String getName() { return is_name; }

}

Claro que existem 'N' maneiras de fazer isso. O detalhe é encontrar uma que melhor se adapte na sua especificação.

Tchauzin!

G

Oi Lina, obrigado mais uma vez,

a questão é o seguinte, é que estou programando para Android(Só fui ver que havia uma sessão para android depois de postar), e esse valor que eu setei na classe “B”, eu ainda terei que recuperá-lo em outra tela depois…por isso preciso armazenar essas variaveis até que o usuário decida sair da rotina de venda.

lina

gferraz.ti:
Oi Lina, obrigado mais uma vez,

a questão é o seguinte, é que estou programando para Android(Só fui ver que havia uma sessão para android depois de postar), e esse valor que eu setei na classe “B”, eu ainda terei que recuperá-lo em outra tela depois…por isso preciso armazenar essas variaveis até que o usuário decida sair da rotina de venda.

Oi,

Bom… então estamos falando de Activity.

A melhor maneira é usar a classe Intent (método putExtra) e ir “repassando” os parâmetros para as novas Activity.

Tchauzin!

G

Então Lina, a rotina é a seguinte:

Primeiro a classe “CabecPed” é executada, aí nela, o usuário clica num botão “Buscar cliente”, ele é redirecionado para a tela de seleção de clientes, nesta tela eu recupero o codigo e o nome do cliente, sei que posso então utilizar o intent, e passar esse código para a classe CabecPed. Mas e em relação a primeira vez que a classe CabecPed for executada? Pois o cliente ainda não foi escolhido… então ao utilizar o intent.getExtras(); o valor estaria vazio…

lina

gferraz.ti:
Então Lina, a rotina é a seguinte:

Primeiro a classe “CabecPed” é executada, aí nela, o usuário clica num botão “Buscar cliente”, ele é redirecionado para a tela de seleção de clientes, nesta tela eu recupero o codigo e o nome do cliente, sei que posso então utilizar o intent, e passar esse código para a classe CabecPed. Mas e em relação a primeira vez que a classe CabecPed for executada? Pois o cliente ainda não foi escolhido… então ao utilizar o intent.getExtras(); o valor estaria vazio…

Oi,

Na primeira vez que a classe CabecPed for executada, era para mostrar o que? Porque você não utiliza um banco pequeno como SQLite?

Tchauzin!

G

Então, quando a CabecPed é executada, ela mostra o número de série, documento, e data de emissão, e o nome do cliente em branco, aí o usuário buscaria o nome do cliente na classe “B”, ao clicar no nome do cliente numa listview, eu salvaria esse nome na memoria, e fecharia essa activity, voltando para a CabecPed e preenchendo o campo do nome. Só depois disso o sistema armazenaria essas informações no SQLite…

Criado 24 de janeiro de 2013
Ultima resposta 24 de jan. de 2013
Respostas 8
Participantes 2