- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
场景如下:我有一个显示 Twitter 提要的简单 ListView。我有一个 CursorAdapter,它正在从 sqlite 中获取推文。当我在我的游标上调用 requery() 时,我希望能够获取已经添加到数据库中的新推文。一切正常,发生这种情况后,新项目甚至在 ListView 中可见。
问题是滚动位置似乎是根据项目位置偏移量保存的。所以假设我的 ListView 中的第一个可见位置是 4。当我重新查询并将 2 个新项目添加到列表顶部时,ListView 将第一个可见项目滚动位置保持为 4,但是因为列表中有两个新项目,我现在在位置 4 看到了一个与我刷新之前不同的项目。这张图片说明了之前和之后:
注意之前,Tweet D 是第一个可见项,之后,Tweet B 现在成为第一个可见项。
我的问题是,如何在调用重新查询时根据光标位置保持相同的滚动位置,以便在此示例中,Tweet D 仍然是重新查询后的第一个可见项?
最佳答案
我在我的一个项目中遇到了类似的问题。这就是我解决它的方法。虽然不是完全一样的情况。希望能帮助到你。
在更新列表之前,以这种方式保存滚动位置 -
int position = getListView().getFirstVisiblePosition();
View v = getListView().getChildAt(0);
int top = v == null ? 0 : v.getTop();
然后在更新列表后,您就会知道添加了多少项目。所以你可以调用
yourlistview.setSelectionFromTop(position + <number of items added>, top);
关于添加新项目时调用 Requery 后,带有 CursorAdapter 的 Android ListView 的滚动位置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14237260/
在我的应用程序中,我显示一些信息,并根据值更改 textView 的颜色。 public class DealsAdapter extends CursorAdapter { private
我正在尝试获取使用自定义 CursorAdapter 存储的数据,但到目前为止它默默地失败了。它只是加载一个空白 View 并且不打印任何内容。 这是主 fragment 的 onCreateView
好吧,因为我在搜索时没有找到执行此操作的一致方法,所以我决定将我的代码放在其他人的眼睛上可能会有所帮助。 我正在制作一款使用纸牌的游戏。根据不同的因素,这些卡可以被锁定或解锁。重要的是,我想检查 sq
我有一个 ChatActivity,它通过 CursorLoader 加载它的数据。 CursorLoader 返回一个带有两个寄存器的游标,但永远不会调用适配器中的 newView 和 bindVi
我不确定问题标题是否合适,但是在搜索了很多之后我问了这个。 在我的 SQLite 表中,我有列 1: _id 2: position 3: path position: the positio
SearchView 的方法 setSuggestionsAdapter 给我一个奇怪的错误: 我有一个扩展 CursorAdapter 的类 InformationAdapter,但它告诉我我不能将
我最近写了一个 StackOverflow 文档示例,说明了如何使用 SimpleCursorAdapter 从数据库中填充 ListView。 它被拒绝了,动机如下: Nobody should b
我正在制作一个 StudentManager 应用程序。 在MainActivity.java中,当我触摸 float 按钮时,它将切换到EditActivity.java。然后,在 EditActi
我读了这个post 但我无法解决我的问题。我在 ListView 中使用 CursorAdapter。 我在列表的每个项目中都有一个复选框。如果您选中该复选框并上下滚动。该复选框将被禁用。我无法修复它
我目前使用 CursorAdapter 和 Loader。 Loader 加载的数据包含一个位置。我想从最近到最远的顺序订购我的商品。我已经计算出显示它的距离,现在我需要找到一种方法对数据进行动态排序
CursorAdapter 有 3 个构造函数。让我们看看指南和引用。 1) CursorAdapter(Context context, Cursor c) This constructor is
我有一个 ListFragment,它显示使用 CursorLoader 和 CursorAdapter 获得的项目列表,按照处理列出。这本身工作正常,但我不确定如何使用相同的模式来显示所选项目的详细
我有一个 CursorAdapter,它是从数据库 Cursor 构建的,如果第一个项目中的 View 没有填写,它使用设置了 View 的第一个后续列表项中的 View 中出现的任何数据填充第一个项
我有一个数据库、一个 ListView 和一个扩展 CursorAdapter 的 CustomCursorAdapter。一个菜单按钮将一个项目添加到数据库中。我希望 ListView 更新并显示此
我有一个可以帮助用户组织处方的应用程序。我有一个显示药物的 ListView ,我使用 EditText 来允许用户过滤列表。我遇到的问题是每次方向改变时 CursorLoader 都会被替换。 据我
在 Ice Cream Sandwich 上,当我想恢复具有带 CursorAdapter 的 gridview 且已将 managedQuery 传递给 CursorAdapter 的应用程序时,我
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
您好,我正在开发一个带有 CursorAdapter 的 Android 应用程序来加载 ListView 。 onItemClick ListView 项目,我正在尝试开始对话 Activity 。
我正在使用 SimpleCursorAdapter 来管理我对数据库的查询,然后在 ListView 中显示结果。 这是我的代码: database.open(); ListView listCont
我正在尝试用数据库查询填充 ListView 。我正在使用扩展游标适配器的自定义适配器。我不知道要使用什么构造函数。当我使用默认的时: public AdapterListview(Context c
我是一名优秀的程序员,十分优秀!