Autore Topic: ListView, cursor e nullpointerException  (Letto 801 volte)

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
ListView, cursor e nullpointerException
« il: 10 Novembre 2010, 16:25:49 CET »
0
Scusate se sono ancora qui a rompere le scatoline ma mi sono ancora bloccato.
Ho questo codice:
Codice (Java): [Seleziona]
String sql="SELECT * FROM partite WHERE team="+prefs.getString("teamfilter", prefs.getString("textData", ""));//+risultato editText;

         
   if(prefs.getBoolean("lista",true)){
          c=db.rawQuery(sql, null);
           
   }
   else {
        c=db.fetchProducts();
   }
   startManagingCursor(c);

   adapter=new SimpleCursorAdapter(
            this,
            R.layout.table, //il layout di ogni riga/prodotto
            c,
            new String[]{MyDatabase.Match.DAY,MyDatabase.Match.MESE,MyDatabase.Match.ANNO,MyDatabase.Match.AVVERSARIO},//questi colonne
            new int[]{R.id.avvTv,R.id.nameTv,R.id.priceTv,R.id.golTv});//in queste views
   
   matchLv.setTextFilterEnabled(true);//metodo per filtrare gli elementi tramite digitazione

    matchLv.setAdapter(adapter);

Vorrei semplicemente definire il cursore che uso nell'adapter per la listView a seconda delle diverse condizioni impostate dall'utente. Il problema è che mi ritorna un nullPointerException..
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #1 il: 10 Novembre 2010, 23:28:14 CET »
0
Allora il problema del nullPointerException si può dire risolto, solo che rimane un altro problema da cui non riesco proprio ad uscire..
Codice (Java): [Seleziona]
11-10 19:53:05.739: ERROR/Database(454): Error inserting competizione=Campionato girone=Andata avversario= assist= team=Sorianese giallo=false categoria=Amatoriale time= red=false gol= anno=2010 mese=11 voto= day=10
11-10 19:53:05.739: ERROR/Database(454): android.database.sqlite.SQLiteException: table partite has no column named categoria: , while compiling: INSERT INTO partite(competizione, girone, avversario, assist, team, giallo, categoria, time, red, gol, anno, mese, voto, day) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:36)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1536)
11-10 19:53:05.739: ERROR/Database(454):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410)
11-10 19:53:05.739: ERROR/Database(454):     at com.android.MyDatabase.insertMatch(MyDatabase.java:54)
11-10 19:53:05.739: ERROR/Database(454):     at com.android.AddMatch$3.onClick(AddMatch.java:119)
11-10 19:53:05.739: ERROR/Database(454):     at android.view.View.performClick(View.java:2408)
11-10 19:53:05.739: ERROR/Database(454):     at android.view.View$PerformClick.run(View.java:8816)
11-10 19:53:05.739: ERROR/Database(454):     at android.os.Handler.handleCallback(Handler.java:587)
11-10 19:53:05.739: ERROR/Database(454):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-10 19:53:05.739: ERROR/Database(454):     at android.os.Looper.loop(Looper.java:123)
11-10 19:53:05.739: ERROR/Database(454):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-10 19:53:05.739: ERROR/Database(454):     at java.lang.reflect.Method.invokeNative(Native Method)
11-10 19:53:05.739: ERROR/Database(454):     at java.lang.reflect.Method.invoke(Method.java:521)
11-10 19:53:05.739: ERROR/Database(454):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-10 19:53:05.739: ERROR/Database(454):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-10 19:53:05.739: ERROR/Database(454):     at dalvik.system.NativeStart.main(Native Method)

Mi dice che la tabella partite non ha la colonna categoria, ma non è cosi. Ho controllato piu volte la classe del mio database ma non ci ho trovato errori. Da cosa può dipendere?
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:ListView, cursor e nullpointerException
« Risposta #2 il: 10 Novembre 2010, 23:40:06 CET »
0
ma perchè fare raw query quando hai la possibiltà di usare le query prefabbricate? e poi, hai fatto un Log (o System.out.println() ) della query prima di eseguirla? prova a farla stampare e a postarla qui che la analizziamo. magari anche la query che usi per creare la tabella...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #3 il: 10 Novembre 2010, 23:50:54 CET »
0
Preciso che il codice è leggermente modificato e che l'errore di cui ho parlato sopra ce l'ho solamente quando la condizione è vera. Posto il codice modificato:
Codice (Java): [Seleziona]
 
String sql="SELECT * FROM partite WHERE team="+prefs.getString("teamfilter", prefs.getString("textData", ""));

c=db.fetchProducts();

  if(prefs.getBoolean("lista", false))
           c=db.rawQuery(sqlt, null);
  c.requery();

   
   startManagingCursor(c);

   adapter=new SimpleCursorAdapter(
            this,
            R.layout.table, //il layout di ogni riga/prodotto
            c,
            new String[]{MyDatabase.Match.DAY,MyDatabase.Match.MESE,MyDatabase.Match.ANNO,MyDatabase.Match.AVVERSARIO},//questi colonne
            new int[]{R.id.avvTv,R.id.nameTv,R.id.priceTv,R.id.golTv});//in queste views
   
    matchLv.setTextFilterEnabled(true);//metodo per filtrare gli elementi tramite digitazione

    matchLv.setAdapter(adapter);

    adapter.notifyDataSetChanged();

Non so la raw query mi sembra una soluzione piu veloce, che vantaggi avrei con la query prefabbricata?
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #4 il: 11 Novembre 2010, 00:36:54 CET »
0
Ho risolto sostituendo la raw query con questa:
Codice (Java): [Seleziona]
           c=db.query(MyDatabase.Match.MATCH_TABLE, null, "team=?",new String[]{prefs.getString("teamfilter",prefs.getString("textData", ""))}, null, null, null);
Grazie lo stesso.  :-)
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:ListView, cursor e nullpointerException
« Risposta #5 il: 11 Novembre 2010, 00:38:26 CET »
0
Non so la raw query mi sembra una soluzione piu veloce, che vantaggi avrei con la query prefabbricata?

Il vantaggio di non aprire thread sul forum per una " dimenticata come nel tuo caso :)

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #6 il: 11 Novembre 2010, 00:44:38 CET »
0
Perchè l'errore era la " dimenticata? dove? io ancora non l'ho trovato veramente.. :-( ..comunque scusa se ho aperto un thread inutilmente ma era da oggi pomeriggio che provavo e riprovavo con diverse soluzioni..
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:ListView, cursor e nullpointerException
« Risposta #7 il: 11 Novembre 2010, 00:50:06 CET »
0
Codice: [Seleziona]
11-10 19:53:05.739: ERROR/Database(454): Error inserting competizione=Campionato girone=Andata avversario= assist= team=Sorianese giallo=false categoria=Amatoriale time= red=false gol= anno=2010 mese=11 voto= day=10

La query categoria=Amatoriale deve essere categoria="Amatoriale". Inoltre l'errore non sembrerebbe neanche nel codice che hai postato :O Vabbhè...

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #8 il: 11 Novembre 2010, 00:53:58 CET »
0
Non so ma forse stavolta stai sbagliando...però vabbe mi scuso ancora, l'importante è che l'errore è risolto..
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:ListView, cursor e nullpointerException
« Risposta #9 il: 11 Novembre 2010, 01:18:25 CET »
0
Non so ma forse stavolta stai sbagliando...però vabbe mi scuso ancora, l'importante è che l'errore è risolto..

Può darsi, io mi baso sullo stacktrace che hai postato, e quello non mente...

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #10 il: 11 Novembre 2010, 01:23:24 CET »
0
Va bene ora basta però senno ti segnalo al moderatore ahahahaah
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:ListView, cursor e nullpointerException
« Risposta #11 il: 11 Novembre 2010, 01:26:15 CET »
0
in generale comunque androider ti consiglio di imparare a fare un po di "debug" semplice, in quanto vedo che spesso fai errori risolvibili con un debug veloce.
Come ti ho detto,in questo caso se te vedi che hai un errore, allora ti prendi la query che lanci e te la stampi da qualche parte (textView,System out, LOG o quel che vuoi) e la verifichi da li. Se l'errore era quello indicato da ricky l'avresti visto subito,senza perdere il pomeriggio..
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #12 il: 11 Novembre 2010, 01:29:29 CET »
0
Lo so, devo migliorare molto, sono ancora all'inizio..avete ragione entrambe ma vi assicuro che l'errore non era la dimenticanza delle virgolette.
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:ListView, cursor e nullpointerException
« Risposta #13 il: 11 Novembre 2010, 01:33:00 CET »
0
Lo so, devo migliorare molto, sono ancora all'inizio..avete ragione entrambe ma vi assicuro che l'errore non era la dimenticanza delle virgolette.

che valori può assumere prefs.getString("teamfilter", prefs.getString("textData", ""))?

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:ListView, cursor e nullpointerException
« Risposta #14 il: 11 Novembre 2010, 01:39:04 CET »
0
Sono stringhe decise dall'utente..per cui dove ho sbagliato?
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.