So, this is my class:
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;
    }
}
I'm sorry, it's much to read, what I'm trying to do is: a Segment has an ID and an ArrayList of NodeIDs. I collect all the NodeIDs until one doesnt pass the getAngle- check, then go to the next segment.
Where I Log.d with the ONE tag, all the NodeIDs are in the segment. Where I Log.d with the TWO tag, the ArrayList of NodeIDs is empty. When I return the segments- ArrayList, the segments in it are there (havin an ID), but the NodeID- ArrayLists of all the segments are empty. Where am I losing the content? I'm going crazy over this.
 
     
     
    