Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在退出上下文操作模式时刷新Listview_Android_Android Listfragment - Fatal编程技术网

Android 如何在退出上下文操作模式时刷新Listview

Android 如何在退出上下文操作模式时刷新Listview,android,android-listfragment,Android,Android Listfragment,我有一个SherlockListFragment,它实现了上下文操作模式。onActionItemClicked方法更新数据库中的条目。如何刷新SherlockListFragment以更新Listview 这是我的SherlockListFragment类和ActionMode.Callback public class FavListFragment extends SherlockListFragment implements LoaderManager.LoaderCallbac

我有一个SherlockListFragment,它实现了上下文操作模式。onActionItemClicked方法更新数据库中的条目。如何刷新SherlockListFragment以更新Listview

这是我的SherlockListFragment类和ActionMode.Callback

    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**)