gpt4 book ai didi

java - 我正在尝试按字母顺序排列我的 ListView

转载 作者:太空宇宙 更新时间:2023-11-04 10:50:24 26 4
gpt4 key购买 nike

我有一个 ListView ,它包含歌曲,但是当我尝试按字母表对其进行排序时,它的位置已更改,但单击它时它仍然采用旧位置,如何定位它?是我的代码。

 final ArrayList<File> mySongs = findSongs(Environment.getExternalStorageDirectory());
items = new String[mySongs.size()];

for (int i = 0; i < mySongs.size(); i++) {
items[i] = mySongs.get(i).getName().toString().replace(".mp3", "").replace(".wav", "");
}

final CustomList adp = new CustomList(MainActivity.this, items, imageId);
adp.sort(new Comparator<String>() {
@Override
public int compare(String lhs, String rhs) {
return lhs.compareTo(rhs);
}
});
lv.setAdapter(adp);

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
startActivity(new Intent(getApplicationContext(), Player.class).putExtra("pos", position).putExtra("songlist", mySongs));
overridePendingTransition(R.anim.anime_enter, R.anim.anime_exit);

}
});

public ArrayList<File> findSongs(File root) {
ArrayList<File> al = new ArrayList<File>();
File[] files = root.listFiles();
for (File singleFile : files) {
if (singleFile.isDirectory() && singleFile.isHidden()) {
al.addAll(findSongs(singleFile));
} else {
if (singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".wav")) {
al.add(singleFile);
}
}
}
return al;
}

谢谢!

最佳答案

因为您正在对列表 items 进行排序,并且 onClick 您正在传递 .putExtra("songlist", mySongs)

oClick上传递相同的列表对象。

关于java - 我正在尝试按字母顺序排列我的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com