Autore Topic: salvataggio mediante AlertDialog  (Letto 461 volte)

Offline InterDroid

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Alcatel onetouch 993d
  • Sistema operativo:
    Windows 8.1
salvataggio mediante AlertDialog
« il: 17 Marzo 2014, 10:07:50 CET »
0
Buongiorno a tutti,

ho il seguente problema:
Ho una listView in cui alla pressione dell'elemento selezionato deve essere possibile aprire un menu con 3 opzioni da effettuare sullo stesso e la scelta effettuata deve essere poi successivamente salvata. Ho pensato quindi di adoperare l'alertDialog per non dover creare un'altra listView, ma il programma va in errore. Da debug ho notato come il problema consista nel fatto che non viene rispettata la sequenza da me scelta (1.selezione elemento lista - 2. compare l'alertDialog - 3. scelgo l'opzione(parte un'altra activity)-4.il risultato ritornato dall'activity viene salvato), infatti l'AlertDialog viene si creato ma io vorrei che non venisse eseguita l'operazione save() fintantochè non venga premuta una delle opzioni scelte. Come potrei fare?
Posto il codice

Codice (Java): [Seleziona]
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
 // TODO Auto-generated method stub
 super.onListItemClick(l, v, position, id);
 String elemento = (String) getListAdapter().getItem(position);
 selezionaOpzione();
 String ritornoOpzione = x;
         
           save(elemento+ ritornoOpzione);
}

Codice (Java): [Seleziona]
public void selezionaOpzione(){
       
       
         final CharSequence[] options = { "a", "b","Nessuna operazione" };
         
     AlertDialog.Builder builder = new AlertDialog.Builder(ListviewMia.this);
     builder.setTitle("Seleziona un'opzione:");
     builder.setItems(options, new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int item) {
             if (options[item].equals("a"))
             {
                 Intent intent = new Intent(getBaseContext(), Activity2.class);
                 startActivityForResult(intent, 1);
             }
             else if (options[item].equals("b"))
             {

                 Intent intent = new Intent(getBaseContext(), Activity3.class);
               
                 startActivityForResult(intent,2);
             }
             else if (options[item].equals("Nessuna operazione")) {
                 dialog.dismiss();
             }
         }
     });
     builder.show();
   
                       
}

Codice (Java): [Seleziona]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
       
                if (requestCode == 1) {
           ...............
                String x = "ciao";
           .............
        } else if (requestCode == 2) {

            ............
        }
    }
}  


in pratica mi viene eseguita l'operazione
Codice (Java): [Seleziona]
 String ritornoOpzione = x;
         
           save(elemento+ ritornoOpzione);

ancora prima che io scelga effettivamente quale sia l'opzione dall'alertDialog.
Grazie!