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.

  • Come creare un AVD per Android 4.0.3? (Imansible trovare un 'userdata.img')
  • Errore "pacchetto android.support.v7.app non esiste"
  • Android - non aggiornare Google Maps v2 in rotazione
  • È ansible autenticare un utente Google (quello connesso in un dispositivo Android) al mio server utilizzando il module ottenuto da author_token Google?
  • Utilizzando intenti per passare i dati tra le attività in android
  • Rimuovere il progetto da Android Studio
  • Ora non so cosa trasmettere nell'adattatore come context, visto che non mi chiama l'adattatore dall'attività.

    Può qualcuno spiegare questo?

  • Stack Clear Activity e avviare nuove attività in android
  • Documentazione offline offline e codici di esempio
  • Retrofit fa chiamate di networking sul thread principale?
  • Esistono dei vantaggi di utilizzare FusedLocationProviderApi over LocationManager?
  • Android: Il parsing Sax restituisce valori nulli e recupera i valori in tag dello stesso nome
  • Come dovrei comunicare tra le attività?
  • 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.