gpt4 book ai didi

java - 为什么 ArrayList 突然改变它的值

转载 作者:行者123 更新时间:2023-12-01 08:53:49 24 4
gpt4 key购买 nike

我得到了一个ArrayList<MyClass>充满 Measure物体,我从手机的加速度传感器获得。这些对象有另一个包含 150 个度量值的 ArrayList。当我在调试时调查这个数组列表时,它被正确填充。但是当我想通过按钮事件获取 ArrayList 后,值发生了变化。里面的对象数量保持不变,但它始终是一个相同的对象,之前不在 ArrayList 中。我希望,你能给我一些提示,告诉我该怎么做。太困惑了...

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方法。我的类中没有静态字段。

最佳答案

“al_SavedAccValues”在内存的某一点始终是相同的 ArrayList<>。在“SaveSwingINI”方法中创建一个新的“al_SavedAccValues”Arraylist很有帮助。

private void SaveSwingINI(ArrayList<SingleAccValue> al_SavedAccValues) {
if(al_SavedAccValues.size()>=150) {
SingleSwing swing = new SingleSwing();
ArrayList<SingleAccValue> al_SwingValues = new ArrayList<>(al_SavedAccValues);
swing.setAl_MeasureData(al_SwingValues);
alSwingsCurSession.add(swing);
}
}

关于java - 为什么 ArrayList<MyClass> 突然改变它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42186093/

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