EDIT:
This question is now resolved. I managed to create exactly what I needed, you may find the results as a downloadable Eclipse project on my website: http://jordanmoore.co.uk/examples/Android/CheckableSortableMulticolumnListView.html
Original Question:
For my android application I have a set of data, currently stored in a ArrayList<Song>, where Song is an object that I have created to hold the details of a single song. This ArrayList will usually be around 200 items long.
I want to display this in such a way that the user can sort the data according to their needs. I want to do this in the sort of way that you can in Windows explorer where it lists the attributes such as name and date and lets you sort it.
The fields that I want to display and be sortable are: songName, albumName, artistName, year, trackNum, duration. I still need a reference to the Song object though so that I can access further properties of selected songs when the user selects an action.
On my Android tablet, I have a file manager application which is almost identical to my needs:

I’m wishing to recreate the actual part showing my images, including the greyish header with the column labels on.
I’ve been searching and searching and just can not seem to figure out where to even start with this task, hence me resulting to SO to ask if anyone can point me in the right direction or even throw me together a quick example.
Thanks,
Jordan.
In no particular order, here’s my ideas
Create a sort function that allows you to sort by any criteria
A linear layout with the header, then a listview containing a linear layout with your actual data
The header would be a horizontally-partitioned linear layout with appropriate weight values
Create a separate layout file for the rows, have it have the same weight values as above
In the onclicklistener for each of the headers, have it call the sort function and then re-make the list.
Granted this is based off of some not-very-similar stuff that I did, so I don’t really have any code to help out with it.