The code there is super-buggy.
The getView
doesn't make any sense. What is that gc() doing there?! What's with the all moveToPosition() calls.
Here's the code rewritten
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = null;
String id = null;
if (convertView == null) {
tv = new TextView(getApplicationContext());
} else
tv = (TextView) convertView;
music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
id = musiccursor.getString(music_column_index);
music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE);
id += " Size(KB): " + musiccursor.getString(music_column_index);
tv.setText(id);
return tv;
}