2011-09-21 2 views
3

J'utilise LoaderManager.LoaderCallbacks<Cursor> dans mon FragmentActivity.Android LoaderCallback pas actualiser

J'invoquez en onResume(): getSupportLoaderManager().restartLoader(0, null, loader);

J'invoque dans onCreate():

loader = new ApplicationLoader(); 
getSupportLoaderManager().initLoader(0, null, loader); 

Enfin j'ai:

button.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     // Deleting row from database 
    } 
}); 

Mais ma liste ne met pas à jour ses éléments.

Seule façon de travailler Invoke:

loader = new ApplicationLoader(); 
getSupportLoaderManager().restartLoader(0, null, loader); 
+0

Avez-vous déjà trouvé cela? – Adam

Répondre

3

J'avais un problème similaire. J'avais oublié d'appeler:

getContext().getContentResolver().notifyChange(uri, null); 

Après insertion, mise à jour et suppression. En outre, ne ferme pas les curseurs. Le chargeur fait cela pour vous.

+0

Les chargeurs ne ferment pas automatiquement le curseur. Vous devez appeler ['changeCursor (null)'] (http://developer.android.com/reference/android/support/v4/widget/CursorAdapter.html#changeCursor (android.database.Cursor)) pour fermer le curseur . –

+0

Oui, j'ai oublié de répondre à ma question. C'est tout à fait. – CeccoCQ

+1

@LaiVung "Le chargeur libère les données dès qu'il sait que l'application ne les utilise plus.Par exemple, si les données sont un curseur d'un CursorLoader, vous ne devez pas appeler vous-même close() dessus. placé dans un CursorAdapter, vous devez utiliser la méthode swapCursor() pour que l'ancien curseur ne soit pas fermé. " -http: //developer.android.com/guide/components/loaders.html – Adam

Questions connexes