Autore Topic: Valore di array null  (Letto 667 volte)

Offline elcondorpasa

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: 0
    • Google+
    • @matteocarde
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Windows 7
Valore di array null
« il: 09 Dicembre 2011, 13:40:48 CET »
0
Salve a tutti. Vi presento il mio problema:

Codice (Java): [Seleziona]
public void onClick(View v) {
                               
                                myDb.execSQL("CREATE TABLE IF NOT EXISTS daEliminare (lista VARCHAR);");
                                Cursor c = myDb.rawQuery("SELECT * FROM daEliminare ;", null);
                                int conteggio = c.getCount();
                                if(conteggio == 0){
                                        Toast toast = Toast.makeText(getApplicationContext(), "Non hai selezionato nessun elemento" , Toast.LENGTH_SHORT);
                                        toast.show();
                                }else{
                        int listaId = c.getColumnIndex("lista");
                        int i = 0;
                        while(c.moveToNext()){
                              listaDaEliminare = c.getString(listaId);
                              daEliminare[i] = listaDaEliminare ;
                              i++;
                             
                        }
                       
                        dialog.setTitle("Eliminare ?");
                        dialog.setMessage("Vuoi veramente eliminare le liste selezionate ?");
                        dialog.setPositiveButton("Si", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                        for (int i = 0; i < daEliminare.length; i++) {
                                                String daEliminareString = daEliminare[i];
                                                Toast toast = Toast.makeText(getApplicationContext(), daEliminareString , Toast.LENGTH_SHORT);
                                                toast.show();
                                                //myDb.execSQL("DROP TABLE table_"+ daEliminareString +" ;");
                                                //myDb.execSQL("DELETE FROM daEliminare WHERE lista = '"+ daEliminareString +"' ;");
                                                //myDb.execSQL("DELETE FROM liste WHERE nome_lista = '"+ daEliminareString +"' ;");
                                                //myDb.execSQL("DELETE FROM selezionati WHERE lista = '"+ daEliminareString +"' ;");
                                               
                                        }
                                                finish();
                                          }
                                        });
                        dialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                          dialog.cancel();
                                          }
                                        });
                        dialog.create();
                        dialog.show();

Il mio problema è questo: Una volta che premo "SI" nel dialog si blocca tutto e non mi da errori nel LogCat e se tolgo il // dal codice DROP TABLE mi dice che non esiste la tabella table_null però la tabella me la cancella lo stesso !!! E mi esegue anche il codice dopo:
Codice (Java): [Seleziona]
myDb.execSQL("DELETE FROM daEliminare WHERE lista = '"+ daEliminareString +"' ;");
myDb.execSQL("DELETE FROM liste WHERE nome_lista = '"+ daEliminareString +"' ;");
myDb.execSQL("DELETE FROM selezionati WHERE lista = '"+ daEliminareString +"' ;");
"Le migliori applicazioni per Android non sono ancora pronte, questo perchè sarete voi, insieme ad altri sviluppatori come voi, a crearle"
-Sergey Brin

Stay Hungry Stay Foolish

Offline Verandi

  • Utente normale
  • ***
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Valore di array null
« Risposta #1 il: 09 Dicembre 2011, 17:55:50 CET »
0
Mi pare manchi un c.moveToFirst() prima del ciclo while.  ;-)

Offline elcondorpasa

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: 0
    • Google+
    • @matteocarde
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Windows 7
Re:Valore di array null
« Risposta #2 il: 09 Dicembre 2011, 18:04:23 CET »
0
scusa non ti capisco cosa dovrei fare con il moveToFirst ?
"Le migliori applicazioni per Android non sono ancora pronte, questo perchè sarete voi, insieme ad altri sviluppatori come voi, a crearle"
-Sergey Brin

Stay Hungry Stay Foolish

Offline Verandi

  • Utente normale
  • ***
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Valore di array null
« Risposta #3 il: 09 Dicembre 2011, 18:09:19 CET »
0
Inserirlo prima del ciclo while. Prova anche a usare il log per controllare la dimensione del Cursor.

Offline elcondorpasa

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: 0
    • Google+
    • @matteocarde
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Windows 7
Re:Valore di array null
« Risposta #4 il: 09 Dicembre 2011, 18:15:18 CET »
0
ma anche se lo facessi non risolverebbe il mio problema ! :)
"Le migliori applicazioni per Android non sono ancora pronte, questo perchè sarete voi, insieme ad altri sviluppatori come voi, a crearle"
-Sergey Brin

Stay Hungry Stay Foolish

Offline Verandi

  • Utente normale
  • ***
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Valore di array null
« Risposta #5 il: 09 Dicembre 2011, 19:42:50 CET »
0
ma anche se lo facessi non risolverebbe il mio problema ! :)

Perdonami ma:
1) Che relazione c'è tra il titolo "Valore di array null" e il tuo problema?
2) Cosa significa " nel dialog si blocca tutto e non mi da errori nel LogCat" ?
3)
Citazione
mi dice che non esiste la tabella table_null però la tabella me la cancella lo stesso
Come fai a saperlo? Se dice che la tabella table_ non esiste, probabilmente non crei la tabella table_
4) Riguardo al moveToFirst():
Citazione
Cursors begin at row index -1 (before the first row). If the Cursor references multiple rows, looping through them with the while loop as you have suggested is the preferred method. It will call moveToNext(), which moves you to index 0 (the first row), and go from there.

If your Cursor only references one row, you may call moveToFirst() on it before reading data to ensure that you are on a valid index. Both moveToFirst() and moveToNext() have the same effect when the Cursor is first created and is at index -1.
Decidi tu se vuoi metterlo o fare di testa tua. Ciao.

Offline elcondorpasa

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: 0
    • Google+
    • @matteocarde
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Windows 7
Re:Valore di array null
« Risposta #6 il: 09 Dicembre 2011, 19:47:59 CET »
0
1)il valore  daEliminareString = daEliminare; è nullo.
2) Appena premo si si blocca tutto e non da piu cenni di vita. Ma non da errori nel logcat
3)La tabella è stata creata perchè ci ho messo dentro dei dati che visualizzo correttamente e viene cancellata perchè quei dati non li vedo più.
4) Il cursor va bene cosi com'è il problema era nel valore dell'aray

Non ti preoccupare ho risolto  :D
"Le migliori applicazioni per Android non sono ancora pronte, questo perchè sarete voi, insieme ad altri sviluppatori come voi, a crearle"
-Sergey Brin

Stay Hungry Stay Foolish