Eu tenho uma classe produtos com atributos como nome , codigo , quantidade etc.
E tenho varios classes de produtos , por exemplo na Classe Bauru- Lanche eu tenho a opção adicionar ao carrinho ao clicar ele adiciona essa classe (objeto) ao list ,pro exemplo “ped.add(p1)” , e tenho a classe realizar pedido que é quando eu fecho a conta e chama o metodo pra mostrar o List (que esta dentro da classe pedido), só que nao esta retornando nada =X,
Classe pedido :
[code]package pacote.grafico;
import java.sql.Array;
import java.util.ArrayList;
import java.util.List;
public class pedido {
static String nome=“Teste”;
public String listapedidos[];
List<produtos> ped = new ArrayList<produtos>();
public void prod (produtos pro){
ped.add(pro);
}
public String imprimirprod (){
for (produtos obj : ped){
nome = obj.toString();
String produto = nome;
}
return nome;
//Metodo alternativo =)
//for (int i = 0; i<ped.size();i++){
//nome = ped.get(0).getNome().toString();
//}
//for (produtos obj : ped){
//return obj.nome.toString();
//}
}
}
[/code]
Setei a variavel “nome” para Teste como um “teste” mesmo na hora de imprimir esta imprimindo “TESTE” ao invés do meu produtos =X.
Aguardo respostas , Abraços e desde ja Obrigado
[code]for (produtos obj : ped){
nome = obj.toString();
System.out.println("nome: "+nome);
}
[/code]
o que lhe retorna?
Tinha que retornar o nome e a quantidade , mas nao ta pegando de dentro do for…
[quote=JuniorMaia][code]for (produtos obj : ped){
nome = obj.toString();
System.out.println("nome: "+nome);
}
[/code]
o que lhe retorna?[/quote]
Porque vc não imprime o obj.toString direto, em vez de jogar o retorno de toString pra uma variável?
[quote=Ruttmann][quote=JuniorMaia][code]for (produtos obj : ped){
nome = obj.toString();
System.out.println("nome: "+nome);
}
[/code]
o que lhe retorna?[/quote]
Porque vc não imprime o obj.toString direto, em vez de jogar o retorno de toString pra uma variável?[/quote]
Mas como eu faria isso ? Eu nao estou conseguindo pegar nada que esta dentro do for =X
@EDIT : A vc esta falando pra fazer com o “Joptionpane” ou “systemout”? Não posso eu tenho que armazenar em uma variavel pois vou passar para uma lista depois =X
Vc sobreescreveu o método toString da sua classe “produto”?
Aproveitando, siga as boas práticas. Nomes de classes começando com letra maiúscula.
Posta a classe produto aí.
Classe Produtos :
[code]package pacote.grafico;
public class produtos {
private String codigo;
private String nome;
private double preco;
private int quantidade;
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
[/code]
Sobreescrever o toString?
Não como assim? vou dar uma procurada sobre isso …Obrigado
[quote=malinosqui]Classe Produtos :
[code]package pacote.grafico;
public class produtos {
private String codigo;
private String nome;
private double preco;
private int quantidade;
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
[/code]
Sobreescrever o toString?
Não como assim? vou dar uma procurada sobre isso …Obrigado[/quote]
Perguntei se vc sobreescreveu o toString pq no seu for vc faz “obj.toString()”. Na verdade vc tem que usar “obj.getNome()”
A sim eu uso
nome = obj.getNome();
?
e do um return no final do metodo normalmente?
Ai depende… Pelo nome do seu método deduzo que vc quer pegar o nome de todos os produtos correto?
Do jeito que está aí vc soh vai retornar o nome do último produto da lista.
Exatamente cara ! se voce pudesse me dar uma luz seria grato =)
O que vc quer exatamente fazer?
Se é só imprimir, não precisa retornar nada. Basta ir imprimindo dentro do for;
Quero armazenar isso para usar em outro lugar , em uma Lista sei la , pode ser em uma Array ou String ne?Mas como pego o valor do for?
Vc já tem a lista de produtos “ped”. Pra que quer outra lista?
A lista ped armazena objetos , eu quero uma lista so com o nome =).
Cara, acho que vc nao precisa disso… Quando precisar o nome, vc usar a lista ped pegando o nome (obj.getNome()). Simples assim.
Não precisa ficar replicando dados.
É que vou usar isso numa Listview em outra classe.
E??
Vc ainda pode usar a mesma lista.
Não deixa , fala que a lista tem que ser String , sendo que a lista contem objetos e os objetos contem atributos , Strings , Int e double =X
Edit É a listview do android , so que acho que não muda nada .
Agora vou almoçar que a tarde tenho aula (de Java por sinal --’) kk,se voce puder continuar me ajudando agradeço até + cara
Vc ta tentando instanciar a JList com a lista? tipo “JList list = new JList(ped);” ???
Não conheço JList, mas não tem método para adicionar os elementos 1 a 1, sem ser direto na instanciação?
Pelo que vi aqui, a JList() recebe ou um Object[] ou um Vector<?>.
Enfim… Não sei como ela funciona hahaha.
Mas vc pode fazer o seguinte:
[code]
String[] lista = new String[pred.size()];
for (int i = 0; i < pred.seze(); i++) {
lista[i] = pred.getNome();
}
JList jList = new JList(lista);
}[/code]
Nem sei se vai rolar tb :lol:
EDIT: Vixi, ListView. Piorou kkkkkk, Nunca vi tb. Mas usando esse código que passei, vc consegue criar sua lista de String tb com algumas mudanças. :lol: