1
I have a problem capturing a text input in a dialog box on Androidstudio. I want to receive the quantity of a product and add in a ArrayList
, but the function does not wait for the insertion in EditText
which I added inside the dialog box and set the value 0 to my return variable.
Here’s 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;
}
I believe the confusion here is the comparison of the swing dialog with the android dialog. It turns out that when calling a dialog, the method does not stop and awaits return. On Android you display the dialog and the execution of the method that called it proceeds normally. You will need to use events to capture value when dialog closes.
– Dener