有没有一种简单的方法来显示以相反的顺序一个ListView? 我想创建一个基于对话的应用程序,并希望最近的条目是在ListView控件的底部。 我知道transcriptMode和stackFromBottom的,但我的问题是数据的顺序。
假设我有100个项目的谈话,并希望显示项目80-100,100是最近的对话项。 我想表现出80-100,这意味着一个ORDER BY ID DESC LIMIT 20我的查询,这迫使项目进行排序100到80,什么,我需要的是相反的。 目前,我有一些讨厌的内部查询码,但觉得应该是基于倒车光标或简单的颠倒的ListView一个简单的解决方案。
内部baseAdapter
,对于getView()
方法,而不是获取该项目的数据在索引“位置”中,使用相反的,意思是:numberOfItems减去位置。
作为展示项目的数量,这也是该baseAdapter内:设置返回的值getCount()
是你希望它是一个(在您的示例20,虽然80-100意味着它应该是21)。
顺便说一句,看来你是ListView中的情况下启动。 可能我建议观看此视频: http://www.youtube.com/watch?v=wDBM6wVEO70
还要检查由SDK管理器提供的API-演示。 他们有大量的例子在那里。
使用此方法的getItem您的适配器相反的顺序里面:
@Override
public Object getItem(int position) {
return super.getItem(super.getCount() - position - 1);
}
从数据库中提取数据时,该代码为我工作。
cs.moveToPosition(super.getCount() - position - 1); //cs is Cursor
使用BETWEEN关键字记录查询似乎是最简单的解决方案给我。