删除项目后刷新ListView

时间:2013-05-28 16:13:17

标签: android database android-fragments refresh

我有一个国家和国际组织的数据库。每个国家/地区都可以是多个组织的成员,每个组织至少有一个成员(换句话说,多对多)。我使用着名的LoaderManager framework进行显示。但在我之后 删除项目(某些项目),所有片段显示已删除的项目。我尝试使用onContextItemSelectedMyFragment extends SherlockListFragment中的this solution但未发生任何事情。

解决。

我试图找出原因很有趣。我终于找到了它。如果我使用URI Uris.MY_URI作为the CursorLoader constructor的参数,我将在deleting.时使用相同的URI。我确信有一个更优雅的解决方案,但这个有效。我甚至不需要致电the restartLoader method

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle loaderExtras) {
    // Some code
    return new CursorLoader(getActivity(), Uris.MY_URI, mProjection, selection, selectionArgs, sortOrder);
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    String selection = Columns._ID + "=?";
    String selectionArgs[] = new String[] {
            Long.toString(id)
    };
    long rows = getActivity().getContentResolver().delete(Uris.MY_URI, selection, selectionArgs);

    super.onListItemClick(l, v, position, id);
}

the query method

中返回光标之前,请不要忘记cursor.setNotificationUri(getContext().getContentResolver(), uri);
if (result > 0) {
        // result is the number of deleted items
        getContext().getContentResolver().notifyChange(uri, null);
}
<{3>}中的

0 个答案:

没有答案