倒置的ListView在Android的?(Inverted ListView in Android

2019-06-25 07:30发布

有没有一种简单的方法来显示以相反的顺序一个ListView? 我想创建一个基于对话的应用程序,并希望最近的条目是在ListView控件的底部。 我知道transcriptMode和stackFromBottom的,但我的问题是数据的顺序。

假设我有100个项目的谈话,并希望显示项目80-100,100是最近的对话项。 我想表现出80-100,这意味着一个ORDER BY ID DESC LIMIT 20我的查询,这迫使项目进行排序100到80,什么,我需要的是相反的。 目前,我有一些讨厌的内部查询码,但觉得应该是基于倒车光标或简单的颠倒的ListView一个简单的解决方案。

Answer 1:

内部baseAdapter ,对于getView()方法,而不是获取该项目的数据在索引“位置”中,使用相反的,意思是:numberOfItems减去位置。

作为展示项目的数量,这也是该baseAdapter内:设置返回的值getCount()是你希望它是一个(在您的示例20,虽然80-100意味着它应该是21)。

顺便说一句,看来你是ListView中的情况下启动。 可能我建议观看此视频: http://www.youtube.com/watch?v=wDBM6wVEO70

还要检查由SDK管理器提供的API-演示。 他们有大量的例子在那里。



Answer 2:

使用此方法的getItem您的适配器相反的顺序里面

@Override
public Object getItem(int position) {
   return super.getItem(super.getCount() - position - 1);
}


Answer 3:

从数据库中提取数据时,该代码为我工作。

cs.moveToPosition(super.getCount() - position - 1); //cs is Cursor


Answer 4:

使用BETWEEN关键字记录查询似乎是最简单的解决方案给我。



文章来源: Inverted ListView in Android?