我一直在 StackOverFlow 中寻找答案。但似乎没有人真正帮助我?我已经制作了一个成功的音乐播放器,一切都很棒,但有一件事让我烦恼。问题是歌曲名称不按字母顺序出现。所以我的问题是如何根据“abc”格式排列音乐?
此外,我没有将 ListView 设置为 Activity (Java)。它在我的 main.xml 中设置。
从我的设备检索音乐时的代码 -
public ArrayList<HashMap<String, String>> getPlayList() {
System.out.println(MEDIA_PATH);
if (MEDIA_PATH != null) {
File home = new File(MEDIA_PATH);
File[] listFiles = home.listFiles();
if (listFiles != null && listFiles.length > 0) {
for (File file : listFiles) {
System.out.println(file.getAbsolutePath());
if (file.isDirectory()) {
scanDirectory(file);
} else {
addSongToList(file);
}
}
}
}
// return songs list array
return songsList;
}
private void scanDirectory(File directory) {
if (directory != null) {
File[] listFiles = directory.listFiles();
if (listFiles != null && listFiles.length > 0) {
for (File file : listFiles) {
if (file.isDirectory()) {
scanDirectory(file);
} else {
addSongToList(file);
}
}
}
}
}
private void addSongToList(File song) {
if (song.getName().endsWith(mp3Pattern)) {
HashMap<String, String> songMap = new HashMap<String, String>();
songMap.put("songTitle",
song.getName().substring(0, (song.getName().length() - 4)));
songMap.put("songPath", song.getPath());
// Adding each song to SongList
songsList.add(songMap);
}
}
}
在 MainActivity 中应用时的代码 -
songsList = songManager.getPlayList();
谢谢你能帮我:)
最佳答案
在创建arrayadapter
之前对ArrayList
进行排序,然后将arrayadater
设置为ListView
使用Collections.sort对 ArrayList
Collections.sort(arraylist)
关于java - 如何按字母顺序设置 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007753/