Android 如何在退出上下文操作模式时刷新Listview
我有一个SherlockListFragment,它实现了上下文操作模式。onActionItemClicked方法更新数据库中的条目。如何刷新SherlockListFragment以更新Listview 这是我的SherlockListFragment类和ActionMode.CallbackAndroid 如何在退出上下文操作模式时刷新Listview,android,android-listfragment,Android,Android Listfragment,我有一个SherlockListFragment,它实现了上下文操作模式。onActionItemClicked方法更新数据库中的条目。如何刷新SherlockListFragment以更新Listview 这是我的SherlockListFragment类和ActionMode.Callback public class FavListFragment extends SherlockListFragment implements LoaderManager.LoaderCallbac
public class FavListFragment extends SherlockListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
...
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
...
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
if(mActionMode != null) {
return false;
}
mActionMode = getSherlockActivity().startActionMode(actionModeCallback);
return true;
}
});
}
private ActionMode.Callback actionModeCallback = new ActionMode.Callback() {
...
@Override
public void onDestroyActionMode(ActionMode mode) {
mActionMode = null;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch(item.getItemId()) {
case R.id.deleteMenu:
int id = cursor.getInt(cursor.getColumnIndex("_id"));
ContentValues values = new ContentValues();
Uri singleUri = ContentUris.withAppendedId(ZikrContentProvider.CONTENT_FAV_ID_URI, id);
values.put(FAV, 0);
getSherlockActivity().getContentResolver().update(singleUri, values, null, null);
mode.finish();
return true;
default:
return false;
}
}
};
}
我已尝试adapter.notifyDataSetChanged,但ListView未得到更新。我还尝试了getLoaderManager.restartLoaderLOADER_ID,null,arg,但我不确定应该指定什么参数3。我的适配器是SimpleCorsAdapter。请帮忙
谢谢。请致电invalidateViews以刷新列表片段
listFragment.getListView.invalidateViews 让你的片段实现ActionMode.Callback和
LoaderManager.LoaderCallbacks<Cursor>
从onActionItemClicked
getLoaderManager.restartLoader(LOADER_ID, null, **this**)