Context di database SQLite passato alla scheda

Ho seguito questo tutorial per utilizzare SQLite db nella mia applicazione android. Dal momento che sono un principiante ho problemi a comprendere il parametro "context" utilizzato nell'esempio.

Voglio call l'adattatore e inserire / aggiornare / eliminare i record da una class che non estenda l'attività che in questo esempio rappresenta il context.

  • Eclipse non lancia (Ubuntu): JVM terminato. Esci codice = 2
  • Gradle non riesce a risolvere le dependencies in Android Studio
  • Perché MonkeyRunner.waitForConnection () non funziona nel mio ambiente?
  • OnActivityResult non viene chiamato in Frammento
  • Come aprire in modo programmato una cartella in android?
  • Android Come fermare il process di inserimento del database
  • Ora non so cosa trasmettere nell'adattatore come context, visto che non mi chiama l'adattatore dall'attività.

    Può qualcuno spiegare questo?

  • Utilizzo di Android Studio con Vuforia
  • Android - prendendo un colpo di schermo
  • Come rimuovere una particolare attività dalla pila di android?
  • android: non ho nessuna stacktrace, il telefono si blocca
  • Findbugs plugin di android gradle
  • Android Marketplace: Modifica del pacchetto dell'applicazione
  • 3 Solutions collect form web for “Context di database SQLite passato alla scheda”

    Passare ActivityName.this come context di class come argomento al constructor della class adattatore ActivityName è il nome della class attività in cui si sta chiamando l'adattatore

    si potrebbe immaginare che il context definisce DOVE / quando il database sqlite esiste. i database sqlite non esistono da soli, essi esistono all'interno dei confini della tua attività, quindi nel context della tua attività.

    per i passi successivi devi capire che il context è una "cosa" dynamic (in Reallife potresti immaginarla come qualcuno QUI e ORA). il context è individuale all'attività e al suo momento, proprio come il tuo qui e ora sono i vostri e il tuo solo e cambiano nel tempo.

    se stai chiamando una class dall'interno della tua attività, allora questo fa il trucco (passa il context dell'attività dall'interno dell'attività stessa – sorta come tu stai dicendo al tuo amico: questo è come sto sentendosi adesso).

    public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Context contextNew = this; myClass(contextNew); 

    una soluzione semplice in tutto intorno (panacea) sarebbe quella di creare una variabile Context statico (contextVariable) all'interno di MyActivity e accedervi direttamente da via via: MyActivity.contextVariable. ma ciò non funziona, perché si ottiene un errore quando si tenta di dichiarare / utilizzare una variabile Context statico.

    Quindi, se si prevede di utilizzare sqlite all'interno di un servizio che NON è chiamato dall'attività principale, ad esempio un servizio triggersto da un ricevitore di trasmissione (né un servizio né un ricevitore hanno un context di per sé), allora è necessario accedere al context dell'applicazione originale da tale ricevitore.

    l'accesso al context dell'attività originale è semplice, ma non è ovvio.

    questo funziona per me (thanx @ZiGi e @Cristian):

     import android.app.Service; import android.content.Context; public class BatchUploadGpsData extends Service { public Context contextNew; @Override public void onCreate() { contextNew = getApplicationContext(); 

    questo è un esempio del codice di lavoro che carica i dati di navigazione in un database del web each volta che il dispositivo Android entra in contatto con una networking WIFI. Ho un ricevitore che ascolta i cambiamenti di connettività (esistenti come una class separata chiamata direttamente "da" Manifest file).

    spero che questo ha senso, se vuoi maggiori dettagli su questo, controlla questo mio post where ho il codice completo (barebones) per quel ricevitore.

    Come si vede nell'esempio, c'è un context passato al ToDoAdapter. È ansible passare l'attività come context o attività.getApplicationContext (). Leggi qui il context.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.