Autore Topic: Prendere un l'input inserito in un Alert  (Letto 425 volte)

Offline boggiano

  • Utente junior
  • **
  • Post: 62
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Play Store ID:
    Alessandro Boggiano
  • Sistema operativo:
    Fedora
Prendere un l'input inserito in un Alert
« il: 07 Novembre 2011, 06:23:14 CET »
0
Ciao a tutti,
devo salvare un set di dati e per farlo devo chiedere all'utente il nome da dare al set.

L'utente preme un pulsante, (su cui e' definito un onClick) e gli viene presentata un dialog
in cui inserire il nome:
Codice: [Seleziona]
public void onPressionePulsante (View v) {
..
..
..


AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Title");
alert.setMessage("Insert name");
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                       
  public void onClick(DialogInterface dialog, int whichButton) {
         Editable nomePastoUtente = input.getText();
                         
         TextView miatmp = (TextView) findViewById(R.id.NomePasto);
         miatmp.setText(nomePastoUtente);
  }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {
  // Canceled.
  }
});

alert.show();
..
...
...
} // end onPressionePulsante()


Ma come faccio a leggere il valore inserito ?
Ho provato ad usare un textview invisibile, ma in questo flusso e' nullo.
Mi sembra di capire che i Dialog usino un async task, quindi mentre l'utente inserisce il nome,
il mio codice continua a girare e non intercetta l'input.


Codice: [Seleziona]
TextView NomePasto = (TextView) findViewById(R.id.NomePasto);
System.out.println("[Calcolo][insertPreferiti] Nome pasto : " + NomePasto.getText().toString());