I'm trying to get list of playlist from sdcard and display it in a listView. but i'm not being able to fetch the result. the listView shows empty.
the code i used is as follows.
SongManager.java
final String MEDIA_PATH = new String("/mnt/sdcard/");
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
private String mp3Pattern = ".mp3";
public SongsManager() {
}
public ArrayList<HashMap<String, String>> getPlayList(){
File home = new File(MEDIA_PATH);
if (home.listFiles(new FileExtensionFilter()).length > 0) {
for (File file : home.listFiles(new FileExtensionFilter())) {
HashMap<String, String> song = new HashMap<String, String>();
song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
song.put("songPath", file.getPath());
songsList.add(song);
}
}
return songsList;
}
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3") || name.endsWith(".MP3"));
}
}
MainActivity.java
ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();
SongsManager plm = new SongsManager();
this.songsList = plm.getPlayList();
for (int i = 0; i < songsList.size(); i++) {
HashMap<String, String> song = songsList.get(i);
songsListData.add(song);
}
ListAdapter adapter = new SimpleAdapter(this, songsListData,
R.layout.playlist_item, new String[] { "songTitle" }, new int[] {
R.id.songTitle });
setListAdapter(adapter);
ListView lv = getListView();