Inverted ListView in Android?

bjdodson picture bjdodson · Jun 8, 2012 · Viewed 10.4k times · Source

Is there an easy way to display a ListView in reverse order? I am trying to create a conversation-based app, and would like the most recent entries to be at the bottom of the ListView. I am aware of transcriptMode and stackFromBottom, however my problem is the order of the data.

Say I have 100 conversation items, and want to display items 80-100, with 100 being the most recent conversation item. I would like to show 80-100, which implies an ORDER BY id desc LIMIT 20 in my query, which forces the items to be sorted 100 to 80, the opposite of what I need. I currently have some nasty inner query code, but feel like there should be a simpler solution based on reversing the cursor or simply inverting the ListView.

Answer

android developer picture android developer · Jun 8, 2012

inside the baseAdapter, for the getView() method , instead of getting the item in the data in index "position" , use the opposite , meaning : numberOfItems minus the position .

as for showing the number of items , that's also inside the baseAdapter : set the value returned by getCount() to be the one you wish it to be (20 in your example,though 80-100 implies that it should be 21 ) .

btw, it seems you are a starter in the case of listView . may i suggest watching this video: http://www.youtube.com/watch?v=wDBM6wVEO70

also check the api-demos provided by the sdk manager . they have plenty of examples there.