Autore Topic: Query  (Letto 590 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
Query
« il: 16 Ottobre 2010, 14:18:13 CEST »
0
Codice (Java): [Seleziona]
qButton.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
                       
                Cursor cursor = db.rawQuery("SELECT time FROM partite", null);      
                cursor.moveToFirst();                    
               
                queryTv.append(cursor.getString(0));
                     
                }
        }      

);
    }

Mi da il seguente errore
Codice (Java): [Seleziona]
10-16 14:11:12.667: ERROR/AndroidRuntime(10750): FATAL EXCEPTION: main
10-16 14:11:12.667: ERROR/AndroidRuntime(10750): java.lang.NullPointerException
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at com.android.Stat$1.onClick(Stat.java:79)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at android.view.View.performClick(View.java:2408)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at android.view.View$PerformClick.run(View.java:8818)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at android.os.Handler.handleCallback(Handler.java:587)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at android.os.Looper.loop(Looper.java:123)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at java.lang.reflect.Method.invokeNative(Native Method)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at java.lang.reflect.Method.invoke(Method.java:521)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at dalvik.system.NativeStart.main(Native Method)

Qualcuno sa dov'è l'errore?
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: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Query
« Risposta #1 il: 16 Ottobre 2010, 14:22:34 CEST »
0
Codice: [Seleziona]
10-16 14:11:12.667: ERROR/AndroidRuntime(10750): java.lang.NullPointerException
10-16 14:11:12.667: ERROR/AndroidRuntime(10750):     at com.android.Stat$1.onClick(Stat.java:79)

Significa alla riga 79 della classe Stat stai chiamando un metodo su un oggetto che in realtà è null.
Valuta tu perchè a quel punto è null (una new non fatta, problemi vari ed eventuali).

Comunque giusto per diti un paio di errori che ho visto:

1)Il cursor può essere null percui devi testare il suo valore prima di fare un .moveToFirst()
2)Il cursor dopo l'uso va chiudo con il metodo close()

Il pattern secndo me "ideale per manipolare un cursor è il seguente:
Codice (Java): [Seleziona]
Cursor cursor = null;

try{

        cursor = db.query....

        if(cursor!= null){
               
        //lavori su di esso

        }
               
}catch(Exception e){
                       
        //gestisci eventuali eccezioni
               
}finally{
                       
        if(cursor!=null)
                cursor.close();
}


« Ultima modifica: 16 Ottobre 2010, 14:30:05 CEST da Ricky` »

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Query
« Risposta #2 il: 22 Ottobre 2010, 17:03:21 CEST »
0
Edit non mi ero accorto che era stato risolto  8-)
Let Your Brain Run Away