在数组列表中,当使用
pointList.add(i , coord);
将添加新变量,并用新变量替换现有值。
如何停止这些替换变量?
for(int i=0;i<coordinateArray.length();i++)
{
brokenArray= coordinateArray.getJSONObject(i);
x=brokenArray.getInt("x");
y=brokenArray.getInt("y");
Log.d("x", " "+i+ " "+x );
Log.d("y", " "+i+ " "+y );
coord.set(x, y);
pointList.add(i , coord);
Log.d("pointList", pointList.toString());
}
最佳答案
这是错误。
coord.set(x, y);
您正在将循环中的值设置为同一对象。
在循环内创建coord对象并添加它。
for(int i=0;i<coordinateArray.length();i++)
{
brokenArray= coordinateArray.getJSONObject(i);
x=brokenArray.getInt("x");
y=brokenArray.getInt("y");
Log.d("x", " "+i+ " "+x );
Log.d("y", " "+i+ " "+y );
Coordinate coord = new Coordinate ();
coord.set(x, y);
pointList.add(i , coord);
Log.d("pointList", pointList.toString());
}