Ich weiß, der Titel klingt seltsam, aber ich muss eine ArrayList
neu erstellen. Daher speichere ich die ArrayList Items in einem anderen temporären ArrayList
.Temporäre ArrayList zum Erstellen einer neuen
Dann lösche ich die ArrayList, die neu aufgebaut werden muss, und dann beginnt der Wiederaufbauprozess. Mein Code sieht wie folgt aus:
ArrayList<ListData> tempList = new ArrayList<>();
for(int i = 0; i<data.size();i++){
String name = data.get(i).getName();
Log.e("name: ", name);
String number = String.valueOf(i);
Log.e("number: ", number);
String uri = data.get(i).getUri();
Log.e("uri: ", uri);
listData.setName(name);
listData.setNumber(number);
listData.setUri(uri);
tempList.add(listData);
}
data.clear();
for(int i=0; i<tempList.size(); i++){
String name = tempList.get(i).getName();
Log.e("getName: ", name);
String number = String.valueOf(i);
Log.e("getNumber: ", number);
String uri = tempList.get(i).getUri();
Log.e("getUri: ", uri);
listData.setName(name);
listData.setNumber(number);
listData.setUri(uri);
data.add(listData);
}
Der Code funktioniert ohne Fehler, aber das Ergebnis ist falsch, hier die Log-Ausgaben sind. Sie sollten sehen, was das Problem ist:
< 12-22 08: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/name :: Bonita (feat. J Balvin) 12-22 08: 36: 55.281 5023-5023/com.beispiel.nesakbulut.fitness E/nummer :: 0 12-22 08: 36: 55,281 5023-5023/com.beispiel.nesakbulut.fitness E/uri :: inhalt://com.android.providers.media.documents/document/audio%3A68 12-22 08: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/name :: Que Va 22.12 08.36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/number :: 1 12-22 08: 36: 55.281 5023-5023/com.beispiel.nesakbulut.fitness E/uri :: content: // com. android.providers.media.documents/document/audio% 3A67 August 12-22: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/name :: Que Va August 12-22: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/Nummer :: 2 August 12-22: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/uri :: Inhalt: //com.android.providers.media.documents/document/audio%3A67 12- 22 08: 36: 55.281 5023-5023/com.beispiel.nesakbulut.fitness E/getName :: Que Va 12-22 08: 36: 55.281 5023-5023/com.beispiel.nesakbulut.fitness E/getNumber :: 0 August 12-22: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/getUri :: Inhalt: //com.android.providers.media.documents/document/audio%3A67 12-22 August: 36: 55.281 5023-5023/com.beispiel.nesakbulut.fitness E/getName :: Que Va 12-22 08: 36: 55,281 5023-5023/com.beispiel.neseballut.fitness E/getNumber :: 1 12-22 08: 36: 55.281 5023-5023/com.beispiel.nesakbulut.fitness E/getUri :: content: //com.android.providers.media.documents/document/audio%3A67 12-22 08: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/getName :: Que Va August 12-22: 36: 55,281 5023-5023/com.example.enesakbulut.fitness E/getNumber :: 2 12- 22 08: 36: 55,281 5.023-5.023/com.example.enesakbulut.fitness E/getUri :: Inhalt: //com.android.providers.media.documents/document/audio%3A67
Wie Sie sehen Es speichert die verschiedenen Namen und Nummern in der richtigen Weise zu der TempList (Arraylist), aber wenn ich versuche, sie von der TempList zu bekommen, bekomme ich immer und immer wieder den gleichen Gegenstand. Gleicher Name, gleiche Nummer und gleiche URL. Der Code ist so einfach, ich kann einfach nicht glauben, dass dies Probleme verursacht.
Ich hoffe, Sie können mir helfen! :)
Sie können einen Breakpoint bei data.clear setzen und Ihre Anwendung debuggen. Überprüfen Sie, ob Ihre Temp-Arraylist die richtigen Daten enthält – Nero
Das wäre schwer für uns herauszufinden, aber Sie sollten in der Lage sein, das Problem mit einem Debugger zu lösen. – isaace
@Nero hat gerade herausgefunden, dass die Größe der temporären ArrayList 1 statt 3 ist. Aber ich verstehe nicht warum ... Zumindest habe ich den Grund für die falsche Ausgabe herausgefunden, aber ich weiß wirklich nicht wie etwas reparieren... – Ketarr