Autore Topic: Problema dialog  (Letto 473 volte)

Offline matteopery

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg g2
  • Sistema operativo:
    windows 8
Problema dialog
« il: 30 Marzo 2015, 00:41:05 CEST »
0
Ciao a tutti. Ho un problema che non capisco e non riesco a risolvere, vorrei creare una dialog in cui posso inserire una stringa e aggiungerla nella listView presente nella stessa activity.
La dialog mi si apre ma quando clicco sulla editText si blocca e si chiude tutto.
Ho provato a non riempire la listView sotto e la dialog non da alcun problema.
Spero di esser stato abbastanza chiaro.
Sarai molto grato se qualcuno mi potesse aiutare ;-)
 Questo è il codice della dialog:

Codice (Java): [Seleziona]
 private void DialogAdd(){
        dialogBuilder=new AlertDialog.Builder(MainActivityHome.this);
      final EditText txtInput =new EditText(this);

        strName="Nome prodotto: ";

        dialogBuilder.setTitle("Aggiungi alla lista");
        dialogBuilder.setMessage("Inserisci prodotto");
       dialogBuilder.setView(txtInput);

        dialogBuilder.setPositiveButton("ADD", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        AlertDialog dialogAdd =dialogBuilder.create();
        dialogAdd.show();

    }

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:Problema dialog
« Risposta #1 il: 30 Marzo 2015, 09:29:13 CEST »
0
Non hai riportato il logcat quindi individuare il motivo dell'errore è impossibile, inoltre il codice che hai riportato del dialog non ha nessuna azione (per i bottoni non c'è codice), come si fa ad aiutarti alla cieca?

In linea di massima: il dialog non può agire direttamente sulla listview, quindi crea una procedura pubblica che fa l'aggiunta e la richiami dal dialogo sul click del bottone "ADD" passando il valore necessario.

Se la mia risposta ti è utile, per favore un thanks!

Offline matteopery

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg g2
  • Sistema operativo:
    windows 8
Re:Problema dialog
« Risposta #2 il: 30 Marzo 2015, 17:59:29 CEST »
0
Il mio quesito era un pò vago e ci metterei troppo a mettere tutto il codice quindi ti pongo questa domanda, in che modo l'adapter relativo al riempimento di una listView può compromettere il fatto che se l'editText della AlertDialog prende il focus mi manda in crash l'app?Non capisco..anche perchè se io tolgo la call relativa all'inserimento dei dati nella listView allora la EditText prende il focus senza problemi.. ??? grazie

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:Problema dialog
« Risposta #3 il: 30 Marzo 2015, 18:39:20 CEST »
0
... in che modo l'adapter relativo al riempimento di una listView può compromettere il fatto che se l'editText della AlertDialog prende il focus mi manda in crash l'app?Non capisco..
Il dialogo non può accedere all'adapter a meno che questo non sia dichiarto "final", ma la dichiarazione "final" implica che non può essere modificato e se ci provi l'app va in crash.

..anche perchè se io tolgo la call relativa all'inserimento dei dati nella listView allora la EditText prende il focus senza problemi.. ??? grazie
non so come fai la chiamata.

Come ho scritto nel precedente post, metti la chiamata di aggiunta alla listview in una "public void aggiungialistview(String cosa){ //codice aggiunta }" e nel bottone ADD aggiungialistview(edittext.gettext().tostring())

Se la mia risposta ti è utile, per favore un thanks!