У меня есть ArrayList<MyClass>
, который заполнен объектами Measure
, которые я получил от датчика ускорения сотового телефона. Объекты имеют еще один ArrayList с 150 значениями измерения. Когда я исследую этот Arraylist во время отладки, он заполняется правильно. Но после того, как я хочу взять этот ArrayList с событием кнопки, значения изменились. количество объектов внутри остается одинаковым, но его всегда один идентичный объект, который раньше не был в ArrayList. Надеюсь, вы могли бы дать мне небольшой намек на то, что здесь делать. Его так запутано ...Почему ArrayList <MyClass> неожиданно меняет свои значения
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
имеет другие значения, при вызове его на кнопку событий, то он попадает в методе SaveSwingINI
. У меня нет статических полей в классах.
Возможный дубликат [Почему мой ArrayList содержит N копий последнего элемента добавляется в список?] (Http://stackoverflow.com/questions/19843506/why-does-my-arraylist-contain- n-copy-of-the-last-item-added-to-the-list) – shmosel
Я просто дважды проверял, что в моих классах нет статических полей – iGzorn
Не могу сказать по приведенной здесь информации. Это поможет вам, если вы [создаете минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve). –