我很困惑,我需要你的帮助。我尝试按照 Virgil Dobjanschi 在 Google IO 2010 上的“开发 Android REST 客户端应用程序”讲座中给出的说明进行操作。不幸的是,我找不到在 Content Provider 和 Cursor Adapter 之间实现有效通信的方法。
我在这里遇到的问题与光标适配器有关,所以我们假设内容提供者一切正常。例如,让我们尝试使用 Contacts ContentProvider 而不是我自己的。我尝试了最简单的解决方案——任何 ContentProvider(假设为联系人,由 SDK 提供)和 SimpleCursorAdapter。问题是 SimpleCursorAdapter 包含来自 Contacts 的光标的构造函数已被弃用。文档说:
此构造函数已弃用。
不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。
我的想法是:“好吧,我不会使用它。我会尝试用 CursorLoader 代替 LoaderManager,因为他们正在建议我。” 所以我去LoaderManager 文档站点查找使用示例以及我发现了什么?使用 SimpleCursorAdapter 构造函数的完美示例。是的,我也想避免因为它已被弃用。
// Create an empty adapter we will use to display the loaded data.
mAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_2, null,
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
new int[] { android.R.id.text1, android.R.id.text2 }, 0);
setListAdapter(mAdapter);
我能找到的所有教程都在使用这个已弃用的构造函数。谁能给我一个很好的答案,避免使用它的正确方法是什么?还是我太在乎它了?我只想学习好的做法...