![](/img/trans.png)
[英]Placing an Object into and Object Array, which is inside another Object Array
[英]Send an object to an array inside another object
我想插入的對象(類型Produto)的Pedido_1對象內部對象的ArrayList array_produtos內,你可以itemClicked方法中看到。 當我運行該應用程序時,我單擊gridview的某個元素以運行此方法,該應用程序將停止,並向我顯示錯誤“不幸的是,該應用程序已停止”。
Produto.java
public class Produto {
private final int cod_produto;
private String nome;
private double preco;
private int quantidade;
private int tempo;
private int imagem;
public Produto(int cod_produto, String nome, double preco,int quantidade, int tempo, int imagem) {
super();
this.cod_produto = cod_produto;
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
this.tempo = tempo;
this.imagem = imagem;
}
}
Pedido.java
public class Pedido {
private final int cod;
private static int cod_aux=1;
private int tempo_total;
private double preco;
private ArrayList<Produto> array_produtos;
public Pedido() {
this.cod = cod_aux;
cod_aux++;
}
public void addProduto(Produto prodt){
this.array_produtos.add(prodt);
this.tempo_total += prodt.getTempo();
this.preco += prodt.getPreco();
}
}
MainActivity.java
public class MainActivity extends Activity {
private ArrayList<Produto> produtos;
private ArrayList<Pedido> produtos_pedidos;
private int number_requests;
private Produto produto_1;
private Pedido pedido_1;
private GridView gv;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
produtos = new ArrayList<Produto>();
produtos_pedidos = new ArrayList<Pedido>();
number_requests=0;
//Products
produto_1 = new Produto(1, "Café",0.60,4,4,R.drawable.cafe1);
produtos.add(produto_1);
//Requests
pedido_1 = new Pedido(); //cria primeiro pedido
produtos_pedidos.add(pedido_1); //Atribui à lista de pedidos
gv = (GridView)findViewById(R.id.gv_produtos);
lv = (ListView) findViewById(R.id.lv_produtos_pedidos);
gv.setAdapter(new GridAdapter(this, array_produtos));
ArrayAdapter<Pedido> arrayAdapter = new ArrayAdapter<Pedido>(this, android.R.layout.simple_list_item_1,produtos_pedidos);
lv.setAdapter(arrayAdapter);
}
public void itemClicked(int position) {
Toast.makeText(getBaseContext(), "Produto inserido!", Toast.LENGTH_LONG).show();
produtos_pedidos.get(number_requests).addProduto(produtos.get(position));
}
}
我認為您需要在代碼中執行以下操作:
public class Pedido {
private final int cod;
private static int cod_aux=1;
private int tempo_total;
private double preco;
private ArrayList<Produto> array_produtos;
public Pedido() {
this.cod = cod_aux;
cod_aux++;
array_produtos= new ArrayList<Produto>();
}
public void addProduto(Produto prodt){
this.array_produtos.add(prodt);
this.tempo_total += prodt.getTempo();
this.preco += prodt.getPreco();
}
}
這可能對您有幫助,因為您尚未在此類中初始化數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.