
我正在尝试学习Android编程,并且一直在使用Udacity Sunshine应用程序.
有些事让我感到困惑.我有一个内容提供程序,它执行插入,删除,选择等,我有一个游标加载器,它也是一个片段,我有一个游标适配器,除了加载器如何知道数据已更改之外,大部分都是有意义的.
在内容提供程序的更新方法中,它执行此 *** 作,我假设它正在通知数据已更改的内容:
if (rowsUpdated != 0) { getContext().getContentResolver().notifyChange(uri, null); }加载器在onCreateLoader方法中设置:
return new CursorLoader( getActivity(), weatherForLocationUri, FORECAST_ColUMNS, null, null, sortOrder );对于用于更新的加载,URI是不同的,但是加载器如何知道数据在下面发生了变化?
适配器在当前光标上有一个句柄,它在onLoadFinished中设置时被加载:
mForecastAdapter.swapCursor(data);最后,列表视图本身在游标适配器上有一个句柄:
mListVIEw.setAdapter(mForecastAdapter);我只是不知道如何通过这种机制,加载器知道数据已经改变,以及它如何通知适配器指示它重绘UI?
如果我对此有任何理解是错误的,请纠正我!
解决方法:
游标将自己注册为死者的通知,这意味着当根URI被通知更改时,URI的死者也会被通知,死者可以是任何具有其他路径信息的东西.
总结以上是内存溢出为你收集整理的java – Android – 游标加载器如何知道底层数据集已经改变?全部内容,希望文章能够帮你解决java – Android – 游标加载器如何知道底层数据集已经改变?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)