Я создал список ArrayList1 и ArrayListArrayList> final_list. list1 включает информацию об одном клиенте и final_list для многих клиентов. Для простоты я предоставляю нужный сегмент кода.Overriding ArrayList
public class CheckItineraries extends FragmentActivity {
private ProgressDialog pDialog;
String username, origin_lat, origin_lng, destination_lat, destination_lng,
waypoint1_lat, waypoint1_lng, waypoint2_lat, waypoint2_lng,
waypoints;
int i, j, b;
TextView v1, v2;
String start_pro , final_pro;
double z = 0;
ListView list;
ArrayList<LatLng> markerPoints;
ArrayList<Double> sum = new ArrayList<Double>();
ArrayList<Double> differ = new ArrayList<Double>();
ArrayList<HashMap<String, String>> final_List = new ArrayList<HashMap<String, String>>();
// URL to get contacts JSON
private static String LOGIN_URL = "http://XXXXXXXXXXXXXXXX/check_itineraries.php";
public static final String PREFS_NAME = "MyPreferencesFile";
// JSON Node names
JSONParser jsonParser = new JSONParser();
// contacts JSONArray
JSONArray contacts = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> itinList;
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<ArrayList<String>> final_list = new ArrayList<ArrayList<String>>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.checkitineraries);
itinList = new ArrayList<HashMap<String, String>>();
new GetData().execute();
}
private class GetData extends AsyncTask<Void, Void, Void> {
public void onPreExecute() {
super.onPreExecute();
Log.d("meg", "meg");
pDialog = new ProgressDialog(CheckItineraries.this);
pDialog.setMessage("Επεξεργάζομαι τα στοιχεία...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
username = settings.getString("username", "nikos");
}
protected Void doInBackground(Void... args) {
// TODO Auto-generated method stub
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST",
params);
// JSONObject jObj = new JSONObject();
JSONArray itin_results = json.getJSONArray("itin_results");
for (int i = 0; i < itin_results.length(); i++) {
JSONObject c = itin_results.getJSONObject(i);
String username = c.getString("username");
String startPoliPro = c.getString("startPoliPro");
String start_lat_pro = c.getString("start_lat_pro");
String start_lng_pro = c.getString("start_lng_pro");
String finalPoliPro = c.getString("finalPoliPro");
String final_lat_pro = c.getString("final_lat_pro");
String final_lng_pro = c.getString("final_lng_pro");
list1.add(username);
list1.add(startPoliPro);
list1.add(finalPoliPro);
final_list.add(i, list1);
Log.d("list1",list1.toString());
Log.d("final_list", final_list.toString());
list1.clear();
Проблема состоит в том, что вторая запись list1 в final_list переопределяет первый.
LogCat
10-04 15:46:22.249: D/list1(25850): [p, Athens, Halkida]
10-04 15:46:22.249: D/final_list(25850): [[p, Athens, Halkida]]
10-04 15:46:22.249: D/list1(25850): [e, Athens, Larissa]
10-04 15:46:22.249: D/final_list(25850): [[e, Athens, Larissa], [e, Athens, Larissa]]
Я знаю, что его элементарно, но я признателен за любую помощь.
Большое спасибо Elliott –