android– 在其适配器上使用changeCursor()后,ListView不会刷新

android– 在其适配器上使用changeCursor()后,ListView不会刷新,第1张

概述我正在使用一个数据库,并且有一个列表片段使用游标适配器来查询加载器中的数据库.当用户长按列表视图项时,他会看到上下文菜单和删除此条目的选项.当他按下删除时,我启动一个删除此条目的线程,然后再次启动加载器以获取新游标(因为不推荐使用“requery()”).当加载器完成加载新游

我正在使用一个数据库,并且有一个列表片段使用游标适配器来查询加载器中的数据库.
当用户长按列表视图项时,他会看到上下文菜单和删除此条目的选项.
当他按下删除时,我启动一个删除此条目的线程,然后再次启动加载器以获取新游标(因为不推荐使用“requery()”).
当加载器完成加载新游标时,我正在尝试使用changeCursor方法,假设@R_767_6419@视图但它没有这样做,所以我尝试使用notifyDataSetChanged,但它也不起作用.
我已经检查过,光标从加载器返回,它确实改变了光标,但是列表视图没有刷新.

我该怎么办?重启片段?

这是一些代码:

case MENU_REMOVE:            final AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();            mProgress = ProgressDialog.show(getActivity(), getString(R.string.List_remove_progress_Title_text),                    getString(R.string.progress_dialog_description));            new Thread(new Runnable() {                @OverrIDe                public voID run() {                    PlacesHandler wph = new PlacesHandler(getActivity());                    wph.DeleteEntry(mPlacename, info.ID);                    getLoaderManager().initLoader(0, null, ListFragment.this);                }            }).start();            return(true);

完成加载后:

@OverrIDe    public voID onl oadFinished(Loader<Cursor> loader, Cursor data) {        if(mProgress == null || !mProgress.isShowing()){            ...        }        else{            mProgress.dismiss();            mAdapter.changeCursor(data);            mAdapter.notifyDataSetChanged();        }    }

谢谢!

解决方法:

谢谢大家,但我发现了我的问题!
从加载器返回的游标与适配器中的游标相同.
这是因为我打电话:

getLoaderManager().initLoader(0, null, this);

代替:

getLoaderManager().restartLoader(0, null, this);

因为我在创建片段时第一次加载光标时已经使用了ID为0的加载器,它只是立即将光标返回给我.
因此,如果某些人遇到同样的问题并阅读它,只需知道initLoader使用具有指定ID的现有加载器(如果有).如果没有,它会创建一个.
但是如果你想丢弃加载器的旧数据并重新开始,你应该使用restartLoader.

再次感谢任何试图提供帮助的人!

总结

以上是内存溢出为你收集整理的android – 在其适配器上使用changeCursor()后,ListView不会刷新全部内容,希望文章能够帮你解决android – 在其适配器上使用changeCursor()后,ListView不会刷新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1105692.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存