我一直在使用 Froyo(我的手机版本)开发手机应用程序。我想切换到在项目中包含 Honeycomb。
我已将 Android 兼容包导入到我的项目中。我当前的应用程序从 SQLite 数据库读取。从所述数据库加载图库以及各种 GridView 和 ListView。我不知道下一步该做什么。我是否要将 Activity 切换到 FragmentActivities?如何从当前的游标转到 CursorLoaders?这对我用于加载图库和网格/ ListView 的自定义适配器有何影响?等等...
非常感谢您提供的任何帮助和建议。我很难掌握如何转换我所拥有的并让两者共存。我真的很想“以正确的方式”做到这一点。
编辑:我意识到这是一个相当广泛的“问题”。因此,让我们专注于 Cursor 到 CursorLoader 的事情。我将为其他项目创建新问题。
最佳答案
通过兼容性库,我使用了针对 2.1 的 CursorLoader 和 Fragments。
如果有 ContentProvider 支持,加载器就非常简单, fragment 需要使用 FragmentActivity(也许还有 LoaderCursors)。
但是,加载器确实需要 LoaderManager.LoaderCallbacks 接口(interface)。
加载器有一个生命周期,我手头没有代码,但它是这样的。
LoaderManager.InitLoader(USER_SPECIFIED_ID_OF_LOADER);
---- 最终调用 --->
Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getActivity(), baseUri,
CONTACTS_SUMMARY_PROJECTION, select, null,
Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
}
这是您的 Loader 执行加载程序操作的地方,我只在代码中使用了 CursorLoader,因此我不了解更多详细信息。
当加载程序完成时,将调用最终回调。
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
//Do whatever you want with your cursor here.
}
也就是说,他们工作得很好并且按预期完成了工作,竖起两个大拇指。
*编辑:还有一个 onLoaderRestarted() 可能会在您重新启动加载程序时被调用,但不确定何时调用它。
关于android - 在手机应用程序上使用 Android CursorLoaders 和其他 Honeycomb 功能 (Froyo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644006/