Ich habe eine ArrayList<MyClass>
, die mit Measure
Objekte gefüllt ist, bekam ich vom Beschleunigungssensor eines Mobiltelefons. Die Objekte haben eine andere ArrayList mit 150 Messwerten. Wenn ich diese Arraylist beim Debuggen untersuche, wird sie korrekt gefüllt. Aber nachdem ich diese ArrayList mit einem Button-Event aufnehmen möchte, haben sich die Werte geändert. Die Anzahl der Objekte im Inneren bleibt gleich, aber es ist immer ein identisches Objekt, das vorher nicht in der ArrayList war. Ich hoffe, du könntest mir einen kleinen Hinweis geben, was ich hier tun soll. Es ist so verwirrend ...Warum ändert eine ArrayList <MyClass> plötzlich ihre Werte
public class StartDesk extends AppCompatActivity implements SensorEventListener{
private ArrayList<SingleSwing> alSwingsCurSession;
private ArrayList<SingleAccValue> alSavedAccValues;
private AudioSensorClass asc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_desk);
...
alSavedAccValues = new ArrayList<>();
bRecording = false;
btnStart = (Button) findViewById(R.id.btnStart);
btnStart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
RecordButtonHandler();
}
});
}
private void RecordButtonHandler() {
if(!bRecording) {
alSwingsCurSession = new ArrayList<>();
...
}
else {
btnStart.setText("Start Recording");
if (alSwingsCurSession.size() > 0) {
...
}
bRecording = false;
}
}
...
private void SaveSwingINI(ArrayList<SingleAccValue> al_SavedAccValues) {
if(al_SavedAccValues.size()>=150) {
SingleSwing swing = new SingleSwing();
swing.setAl_MeasureData(al_SavedAccValues);
alSwingsCurSession.add(swing);
}
}
...
}
alSwingsCurSession
andere Werte hat, wenn es auf den Knopf Ereignisse aufrufen, dann wird es in der SaveSwingINI
Methode. Ich habe keine statischen Felder in meinen Klassen.
Mögliches Duplikat [Warum wird meine Arraylist enthält N Kopien des letzten Elements in die Liste aufgenommen?] (Http://stackoverflow.com/questions/19843506/why-does-my-arraylist-contain- n-Kopien-des-letzten-Item-added-to-the-list) – shmosel
Ich habe nur überprüft, dass es in meinen Klassen keine statischen Felder gibt. – iGzorn
Kann ich nicht wirklich aus den hier gegebenen Informationen ersehen. Es wird sehr hilfreich sein, wenn Sie [ein minimales, vollständiges und überprüfbares Beispiel erstellen] (http://stackoverflow.com/help/mcve). –