Android 替换数组列表中特定索引上的数据
我试图用新的数组列表数据替换数组列表数据,但它总是给我错误的数据。第一次它正确地替换,但下一次在循环中它将替换数组列表的所有索引。这是我存储地图标记ID的代码和日志catAndroid 替换数组列表中特定索引上的数据,android,arraylist,google-maps-markers,google-maps-api-2,Android,Arraylist,Google Maps Markers,Google Maps Api 2,我试图用新的数组列表数据替换数组列表数据,但它总是给我错误的数据。第一次它正确地替换,但下一次在循环中它将替换数组列表的所有索引。这是我存储地图标记ID的代码和日志cat //Declaring Arraylists ArrayList<ArrayList<LatLng>> LatLng_List_for_editing = new ArrayList<ArrayList<LatLng>>(); private ArrayList<A
//Declaring Arraylists
ArrayList<ArrayList<LatLng>> LatLng_List_for_editing = new ArrayList<ArrayList<LatLng>>();
private ArrayList<ArrayList<String>> ID_List_for_editing = new ArrayList<ArrayList<String>>();
private ArrayList<String> ID_List = new ArrayList<String>();
private ArrayList<LatLng> LatLng_List = new ArrayList<LatLng>();
//inserting data
ID_List_for_editing.add(new ArrayList<String>(ID_List));
LatLng_List_for_editing.add(new ArrayList<LatLng>(LatLng_List));
//getting data
for (int p_index = 0; p_index < LatLng_List_for_editing.size(); p_index++) {
for (int c_index = 0; c_index < LatLng_List_for_editing.get(p_index).size(); c_index++) {
if (ID_List_for_editing.get(p_index).get(c_index).equals(maker_ID_being_draged)) {
LatLng_List_for_editing.get(p_index).remove(c_index);
LatLng_List_for_editing.get(p_index).add(c_index, ID_latlng);
Log.e("Lat lng list during editing :", "" + LatLng_List_for_editing.get(p_index));
}
}
ID_List.clear();
MarkerOptions marker = new MarkerOptions();
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.color(Color.RED);
polylineOptions.width(3);
polylineOptions.addAll(LatLng_List_for_editing.get(p_index));
mMap.addPolyline(polylineOptions);
for (int lenghth = 0; lenghth < LatLng_List_for_editing.get(p_index).size(); lenghth++) {
Marker_ID = mMap.addMarker(
marker.position(LatLng_List_for_editing.get(p_index).get(lenghth)).draggable(
true)).getId();
ID_List.add(Marker_ID);
}
Log.e("ID's in edit list is :", "" + ID_List_for_editing);
Log.e("ID list before removing :", ":"+p_index + ID_List_for_editing.get(p_index));
ID_List_for_editing.remove(p_index);
ID_List_for_editing.add(p_index ,ID_List);
Log.e("ID list is :", "" + ID_List);
Log.e("ID list after removing :", ":"+p_index + ID_List_for_editing.get(p_index));
Log.e("IDs in edit list is :", "" + ID_List_for_editing);
}
Log.e("final Lat lng list:", "" + LatLng_List_for_editing);
请帮忙。谢谢尝试列表界面并使用下面的方法设置数据
set(int index, E element)
用指定的对象替换此列表中指定位置的元素。此操作不会更改列表的大小
参数
位置:放置指定对象的索引
对象:要插入的对象
返回
索引中的上一个元素。我实现了相同的方法,但结果相同。日志cat与上面相同,然后调试应用程序。那更好
set(int index, E element)