Hier mal der Quellcode:
Java
isChecked.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SparseBooleanArray checked = listView.getCheckedItemPositions();
int len = listView.getCount();
for (int i = 0; i < len; i++) {
if (checked.get(i)) {
String item = listView.getAdapter().getItem(checked.keyAt(i)).toString();
System.out.println(item);
}
else {
System.out.println("Unchecked");
}
}
}
});
Alles anzeigen
Momentan habe ich zum testen 8 Titel als .mp3 auf der SDKarte. Um hier keine Werbung zu machen, die Titel sind folgendermaßen gespeichert:
Code
{mp3Path=/storage/emulated/0/artist - song1.mp3, mp3Title=artist - song1}
{mp3Path=/storage/emulated/0/artist - song2.mp3, mp3Title=artist - song2}
{mp3Path=/storage/emulated/0/artist - song3.mp3, mp3Title=artist - song3}
{mp3Path=/storage/emulated/0/artist - song4.mp3, mp3Title=artist - song4}
{mp3Path=/storage/emulated/0/artist - song5.mp3, mp3Title=artist - song5}
{mp3Path=/storage/emulated/0/artist - song6.mp3, mp3Title=artist - song6}
{mp3Path=/storage/emulated/0/artist - song7.mp3, mp3Title=artist - song7}
{mp3Path=/storage/emulated/0/artist - song8.mp3, mp3Title=artist - song8}
Habe ich beispielsweise Song1, Song3, Song7 und Song8 ausgewählt, gibt mir println() folgendes aus:
Code
System.out: {mp3Path=/storage/emulated/0/artist - song1.mp3, mp3Title=artist - song1} <-richtig
System.out: Unchecked <- richtig
System.out: {mp3Path=/storage/emulated/0/artist - song7.mp3, mp3Title=artist - song7} <-falsch
System.out: Unchecked <- richtig
System.out: Unchecked <- richtig
System.out: Unchecked <- richtig
System.out: {mp3Path=/storage/emulated/0/artist - song1.mp3, mp3Title=artist - song1} <-falsch
System.out: {mp3Path=/storage/emulated/0/artist - song1.mp3, mp3Title=artist - song1} <-falsch
UPDATE:
Okay - ich konnte das Problem beheben.
Ich habe diese Code-Zeile:
durch die folgende ersetzt:
Nun werden die ausgewählten Songs 100% richtig angezeigt.