I'm having a problem picking up a text entry in a dialog box in AndroidStudio. I want to receive the quantity of a product and add it to a ArrayList
, however the function does not wait for the insert in the EditText
that I added inside the dialog box and assigns the value 0 to my return variable.
Here is the code where I invoke the method:
/*Método que captura o click do garçon em determinado produto e depois pega a quantidade */
public AdapterView.OnItemClickListener Dialogo(){
return(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 0:
Produtos cafe = new Produtos();
cafe.setId(0);
cafe.setQuantidade(Caixa_Dialogo("Café"));
cafe.setTempo_preparo(2);
pro_pedidos.add(cafe);
break;
case 1:
Produtos suco = new Produtos();
suco.setId(1);
suco.setQuantidade( Caixa_Dialogo("Suco"));
suco.setTempo_preparo(10);
pro_pedidos.add(suco);
break;
case 2:
Produtos refrigerante = new Produtos();
refrigerante.setId(2);
refrigerante.setQuantidade( Caixa_Dialogo("Refrigerante"));
refrigerante.setTempo_preparo(10);
pro_pedidos.add(refrigerante);
break;
}//switch
}//onItemClick.
});//return
}//Dialogo
This is the method that creates the box:
/*Método que retorna uma quantidade digitada pelo garçon em uma caixa de diálogo*/
public int Caixa_Dialogo(String item){
AlertDialog.Builder caixa = new AlertDialog.Builder(Main2Activity.this);
caixa.setTitle("Seleção de quantidade");
caixa.setMessage(item+" selecionado. Digite a quantidade que o cliente deseja:");
/*Construção do TextEdit.*/
final EditText entrada = new EditText(Main2Activity.this);
entrada.setInputType(InputType.TYPE_CLASS_NUMBER);
caixa.setView(entrada);
caixa.show();
caixa.setNeutralButton("Confirmar", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
quantidade = Integer.parseInt(entrada.getText().toString());
}
});//setNeutralButton
caixa.show();
return quantidade;
}