0
我得到一個ArrayList<MyClass>
是充滿了Measure
對象,我從手機的加速度傳感器。這些對象具有另一個包含150個度量值的ArrayList。當我在調試時對這個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-copies-of-the-last-item-added-to-the-list) – shmosel
我只是再次檢查了我的班級中沒有靜態字段 – iGzorn
從這裏給出的信息無法真實地分辨出來。如果你[創建一個最小化,完整和可驗證的例子](http://stackoverflow.com/help/mcve),它將會有很大的幫助。 –