Articles of android cursorloader

使用CursorLoader在填充列表视图之前显示进度指示器

在我的列表视图没有填充数据库数据时,有什么更好的方法来显示进度指示器? 我find了一些使用assynctask的方法,但在我的例子中,我使用的是Loader / CursorLoader 。 public class TestActivity extends SherlockFragmentActivity implements LoaderCallbacks { SimpleCursorAdapter mAdapter; ListView mListView; private static final String[] UI_BINDING_FROM = new String[] { TestDBAdapter.KEY_NAME, TestDBAdapter.KEY_ICON }; private static final int[] UI_BINDING_TO = new int[] { R.id.text, R.id.icon }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_Test); mListView = (ListView) findViewById(R.id.listview); mAdapter = […]

在animation制作之前,滑动以删除卡片视图会导致短暂闪烁

我已经在我的应用程序中实现了cardview,并且function向右滑动即可删除。 当我向右滑动卡片视图时,它会返回并返回十分之一秒,然后增益消失,导致闪烁。 我的代码对于滑动触摸侦听器是这样的。我正在更新内容解析器以及通知适配器。 SwipeableRecyclerViewTouchListener swipeTouchListener = new SwipeableRecyclerViewTouchListener(recyclerView, new SwipeableRecyclerViewTouchListener.SwipeListener() { @Override public boolean canSwipe(int position) { return true; } @Override public void onDismissedBySwipeRight(RecyclerView recyclerView, int[] reverseSortedPositions) { for (int position : reverseSortedPositions) { Post post = posts.get(position); post.setIsDeleted(true); getActivity().getContentResolver().update(PostsContract.PostEntry.buildUriForPost(posts.get(position).get_ID()), Utility.changePostToContentValue(post), “_id=” + post.get_ID(),null); posts.remove(position); adapter.notifyItemRemoved(position); } } }); recyclerView.addOnItemTouchListener(swipeTouchListener); 我的onLoadFinished看起来像这样 @Override public void onLoadFinished(Loader […]

处理CursorLoaderexception

我有一个Fragment实现LoaderManager并使用CursorLoader(没什么特别的)。 我想捕获查询期间抛出的exception,但我看不出怎么样! 有帮助吗? 谢谢。

使用CursorLoader和Custom CursorAdapter进行ListView过滤

我目前正在做一个涉及根据我当前位置显示附近位置列表的项目。 我不久前刚开始使用Android编程,所以在编码阶段我还在学习。 我搜遍了所有试图得到一些关于如何继续的线索。 阅读和尝试后我仍然被困住了。 我的工作代码目前包括 CursorLoader 自定义ResourceCursorAdapter,帮助填充ListView上的条目 问题 过滤ListView条目的“正确”方法是什么? 我看过Filter / Filterable接口上的post,但它似乎不适合我当前的设置? 我是否在Custom CursorAdapter中执行过滤? 执行过滤后,如何刷新ListView? 我是否调用getLoaderManager()。restartLoader(0,null,this)或adapter.notifyDataSetChanged()? 提前致谢。

使用支持库时LoaderManager出错

我正在尝试将我的代码从使用游标转换为使用CursorLoaders。 为了支持旧版本的Android,我安装了支持库,而不是导入android.content.CursorLoader,我正在导入android.support.v4.content.CursorLoader。 现在编译好的代码会抛出两个错误。 我实现它时,第一个错误是在LoaderManager上。 错误是:LoaderManager无法解析为某种types。 第二个错误是对initLoader的调用。 错误是:LoaderManagertypes中的方法initLoader(int,Bundle,LoaderManager.LoaderCallbacks)不适用于参数(int,Bundle,MyList)。 这是我的代码: public class MyList extends ListActivity implements LoaderManager.LoaderCallbacks { private static final String[] PROJECTION = new String[] { “_id”, “fieldname” }; private static final int LOADER_ID = 0; private static final String MYTABLE_BASEPATH = “MyTable_tbl”; private static final String AUTHORITY = “SQLData”; public static final Uri MY_URI = […]

使用CursorLoader查询专辑的歌曲

我想通过CursorLoader查询MediaStore来获取专辑的歌曲列表 我怎样才能做到这一点 ? 我可以使用以下代码获取设备的所有歌曲: static final String[] TRACK_SUMMARY_PROJECTION = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE}; public Loader onCreateLoader(int id, Bundle args) { String sortOrder = MediaStore.Audio.Media.TITLE + ” ASC”; String select = null; return new CursorLoader(getActivity(), MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, TRACK_SUMMARY_PROJECTION, select, null, sortOrder); } 我应该添加什么代码或修改来过滤特定专辑的歌曲?

Android CursorLoader与AsyncQueryHandler?

我已经看到了如何实现CursorLoader和AsyncQueryHandler。 如果我想将它用于SimpleCursorTreeAdapter的Android 2.2应用程序,我应该使用哪一个?

维护ListView,其中每个List项具有一对多关系

我的应用程序的设置方式是我有一个由CursorLoader维护的ListView,由用户发布的post。 每个post都有与之关联的用户评论。 每个listitem底部都有一个自定义文本视图,可以滚动注释(使用向右或向左滑动)。 在每个自定义文本视图中,是与其特定post关联的注释列表。 它类似于Google+应用中的评论,但项目是可滚动的。 注释存储在与post不同的数据库表中。 我遇到的问题是,每次调用BindView时,我都在查询数据库并检索带有相关注释的游标并将其添加到自定义textview列表中。 查询每个项目的注释数据库表似乎效率很低。 所以我想知道是否有理想的方法来处理这个问题。 我的代码看起来像: public void bindView(View view, Context context, Cursor cursor) final String rowid = cursor.getString(cursor.getColumnIndexOrThrow(Database.ROWID)); Cursor commentcursor = c.getContentResolver().query(DatabaseProvider.CONTENT_URI_COMMENTTABLE, freeWriteCommentColumns, Database.PARENTPOSTROWID + ” =?”, new String[]{rowid}, null); commentcursor.moveToFirst(); while (commentcursor.isAfterLast() == false){ //get comment //add to comment text view list } 我已经研究过CursorJoiners,但这似乎并没有用。 我玩过JOINS,但这会使行数大于它需要的数量。 我正在玩一个注释表游标的持有者,该游标是在创建适配器时创建的并设置为全局variables。 这似乎是一个不错的途径,因为我不必每次都重新查询。 我只是不确定如何处理这种情况。

如何对CursorLoader结果进行排序?

我使用CursorLoader查询结果,这不是我想要在ListFramgenet中显示的顺序。 怎么排序呢? 我用它来设置适配器: mAdapter = new SimpleCursorAdapter(getActivity(), android.R.layout.simple_list_item_2, null, new String[] { “name”, “distance”}, new int[] { android.R.id.text1, android.R.id.text2 }, 0); setListAdapter(mAdapter); // Start out with a progress indicator. setListShown(false); // Prepare the loader. Either re-connect with an existing one, // or start a new one. getLoaderManager().initLoader(0, null, this); 创建加载器: public Loader onCreateLoader(int id, Bundle […]

分页列表和CursorLoader

我需要实现分页列表,它使用Loader从ContentProvider获取Cursor 。 我有页脚,当用户点击它时 – 我需要将下一条记录添加到列表中。 如何使用Loader刷新列表中的数据? 或者我该怎么办?