所以,這是我的課:的ArrayList的內容不見了
public class SegmentMaker {
public ArrayList<Segment> makeSegments(CustomNodes cn, Trip myTrip) {
ArrayList<Segment> segments = new ArrayList<Segment>();
ArrayList<Integer>segmentNodes = new ArrayList<Integer>();
int count = 0;
for (int i=0; i < myTrip.getTripList().size(); i++){
Log.d(TAG, "checking " + cn.getOsmID(myTrip.getTripItem(i)));
if (i==0) {
segmentNodes.add(myTrip.getTripItem(i));
}
else if (i==myTrip.getTripList().size()-2) {
segmentNodes.add(myTrip.getTripItem(i));
}
else if (i==myTrip.getTripList().size()-1) {
segmentNodes.add(myTrip.getTripItem(i));
Segment segment = new Segment();
segment.setId(count);
segment.setNodeIds(segmentNodes);
Log.d(TAG, "in SM segment " + segment.getId() + " nodes: " + segment.getNodeIds().toString());
segmentNodes.clear();
count++;
segments.add(segment);
Log.d(TAG, "in SM segment " + segment.getId() + " nodes: ");
for (int x=0; x<segment.getNodeIds().size(); x++) {
Log.d(TAG, " " + segment.getNodeIds().get(x));
}
break;
}
else if ((getAngle(myTrip.getTripItem(i), myTrip.getTripItem(i+1), myTrip.getTripItem(i+2),cn) < 25) &&
(getAngle(myTrip.getTripItem(i), myTrip.getTripItem(i+1), myTrip.getTripItem(i+2),cn) > -25))
{
segmentNodes.add(myTrip.getTripItem(i));
}
else {
segmentNodes.add(myTrip.getTripItem(i));
Segment segment = new Segment();
segment.setId(count);
segment.setNodeIds(segmentNodes);
Log.d(ONE, "in SM segment " + segment.getId() + " nodes: " + segment.getNodeIds().toString());
segments.add(segment);
segmentNodes.clear();
count++;
}
}
Log.d(TWO, " segments SM ende: " + segments.get(0).getNodeIds().size());
return segments;
}
public float getAngle(int firstItem, int secondItem, int thirdItem, CustomNodes cn){
//do some stuff
return angle;
}
}
對不起,這是多讀,我想要做的是:一個段都有一個ID和NodeIDs的ArrayList 。我收集所有NodeID,直到一個不通過getAngle檢查,然後轉到下一個分段。
其中我使用ONE標記Log.d,所有NodeID都在該段中。在我使用TWO標記Log.d的情況下,NodeID的ArrayList是空的。當我返回segments-ArrayList時,其中的片段在那裏(擁有一個ID),但是所有片段的NodeID ArrayList都是空的。我在哪裏丟失內容?我爲此瘋狂。
我刪除了兩個segmentNodes.clear(),現在它不像我期望的那樣工作,但至少在這些ArrayList中有一些內容。這對我來說是全新的,它也清除了我已經「儲存」的ArrayLists。謝謝一堆! – FWeigl