2011-09-21 16 views
3

私はFragmentActivityLoaderManager.LoaderCallbacks<Cursor>を使用しています。Android LoaderCallbackが更新されない

私はonResume()に呼び出す: getSupportLoaderManager().restartLoader(0, null, loader);

私はonCreate()に呼び出す:

button.setOnClickListener(new OnClickListener() { 

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

しかし、私のリストには、その項目を更新しません:

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

最後に私が持っています。仕事をする

唯一の方法は、呼び出しです:

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

あなたはこれを理解しましたか? – Adam

答えて

3

私は同様の問題を抱えていました。私は電話するのを忘れていた:

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

挿入、更新、および削除後。また、はカーソルをクローズしません。ローダーがそれを行います。

+0

ローダーはカーソルを自動的に閉じません。カーソルを閉じるには、['changeCursor(null)'](http://developer.android.com/reference/android/support/v4/widget/CursorAdapter.html#changeCursor(android.database.Cursor))を呼び出さなければなりません。 –

+0

はい、私の質問に答えるのを忘れました。それは正確です。 – CeccoCQ

+1

@LaiVung "ローダーは、データがCursorLoaderからのカーソルである場合など、アプリケーションがそれを使用していないことを認識すると、データを解放します。 CursorAdapterに配置されている場合は、古いCursorが閉じられないようにswapCursor()メソッドを使用する必要があります。 -http://developer.android.com/guide/components/loaders.html – Adam

関連する問題