1
ArrayList list1과 ArrayListArrayList> final_list를 만들었습니다. list1에는 단일 고객에 대한 정보와 많은 고객에 대한 final_list가 포함됩니다. 나는 간결함을 위해 네 서사 코드 세그먼트를 제공한다.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가 첫 번째 항목을 무시한다는 것입니다.
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]]
로그 캣 나는 그 기본을 알고하지만 난 어떤 도움을 주셔서 감사합니다.
많은 감사 엘리엇에
에서 변경하여 깊은 복사본을 사용 –