Java 从arraylist获取arraylist值<;Hashmap>;从异步任务
我目前正在IngogleMaps项目中工作,我从mysql表中获取纬度和经度的lsit,并将其存储在包含hashmap的Arraylist中Java 从arraylist获取arraylist值<;Hashmap>;从异步任务,java,android,google-maps,arraylist,android-asynctask,Java,Android,Google Maps,Arraylist,Android Asynctask,我目前正在IngogleMaps项目中工作,我从mysql表中获取纬度和经度的lsit,并将其存储在包含hashmap的Arraylist中 ArrayList<HashMap<String,String>> ArrayList 我想在post-execute方法中获取arraylist值,但它会检索最后一个索引值,而不是整个列表值 这是我的异步任务代码 class VehiclePath extends AsyncTask<String,Str
ArrayList<HashMap<String,String>>
ArrayList
我想在post-execute方法中获取arraylist值,但它会检索最后一个索引值,而不是整个列表值
这是我的异步任务代码
class VehiclePath extends AsyncTask<String,String,String>{
@Override
protected void onPreExecute() {
cDialog = new ProgressDialog(HistoryTrack.this);
cDialog.setMessage("Fetching Vehicle Details");
cDialog.setIndeterminate(false);
cDialog.setCancelable(false);
cDialog.show();
}
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
params1.add(new BasicNameValuePair("org_id", LoginActivity.orgid));
params1.add(new BasicNameValuePair("vechicle_reg_no", vehicle_reg_numb));
params1.add(new BasicNameValuePair("date", "2014-04-23"));
System.out.println("vehicle date no.fdfsd ."+checkdate);
// params1.add(new BasicNameValuePair("org_id", LoginActivity.orgid));
jArray = jsonParser.makeHttpRequest(vehiclehistorysurll, "POST", params1);
//Log.i("tagconvertstr", "["+jArray+"]");
try
{
if(jArray != null){
JSONObject c = jArray.getJSONObject(TAG_SRES);
//Log.i("tagconvertstr", "["+c+"]");
user = c.getJSONArray(TAG_VEHICLE_ARRAY);
Log.i("tagconvertstr1", "["+user+"]");
for(int i=0;i<user.length();i++)
{
System.out.println("forloop i valuie"+i);
JSONObject c1 = user.getJSONObject(i);
JSONObject c2 = c1.getJSONObject(TAG_SRES);
vehicle_reg_numb = c2.getString(TAG_Vechicle_REG);
latitude= c2.getString(TAG_Latitude);
longitude = c2.getString(TAG_Longitude);
speed = c2.getString(TAG_Speed);
exceed_speed_limit=c2.getString(TAG_Exceed_Speed);
bus_tracking_timestamp = c2.getString(TAG_bus_tracking_timestamp);
address=c2.getString(TAG_address);
map.put(TAG_Latitude,latitude);
map.put(TAG_Longitude,longitude);
map.put(TAG_Speed, speed);
map.put(TAG_address, address);
vehiclehistory.add(i,map);
System.out.println("Values for vehiclehistory list"+vehiclehistory.get(i));
System.out.println("size of arraylist::"+vehiclehistory.size());
}
}
}catch (JSONException e) {
e.printStackTrace();
}
cDialog.dismiss();
return null;
}
@Override
protected void onPostExecute(String file_url) {
super.onPostExecute(file_url);
cDialog.dismiss();
System.out.println("size of arraylist::"+vehiclehistory.size());
for(int i=0;i<vehiclehistory.size();i++){
System.out.println(vehiclehistory.get(i));
}
for (int i = 0; i < vehiclehistory.size(); i++) {
System.out.println("i value"+i);
LatLng pinLocation = new LatLng(Double.parseDouble(vehiclehistory.get(i).get(TAG_Latitude)), Double.parseDouble(vehiclehistory.get(i).get(TAG_Longitude)));
System.out.println("pin location"+pinLocation);
// LatLng pinLocation = new LatLng(vehiclehistory.get(i), vehiclehistory.get(i));
// LatLng pinLocation = new LatLng(Double.parseDouble(vehiclehistory.get(i), Double.parseDouble(vehiclehistory.get(i));
// LatLng pinLocation = new LatLng(vehiclehistory1.get(i).latitude, vehiclehistory1.get(i).longitude);
String titlevalue=vehiclehistory.get(i).get(TAG_address)+vehiclehistory.get(i).get(TAG_Speed);
Marker TP = googleMap.addMarker(new MarkerOptions().
position(pinLocation).title(titlevalue));
System.out.println("titlevalue of respective pinlocation"+titlevalue);
}
}
}
类车辆路径扩展异步任务{
@凌驾
受保护的void onPreExecute(){
cDialog=新建进度对话框(HistoryTrack.this);
cDialog.setMessage(“获取车辆详细信息”);
cDialog.setUndeterminate(假);
cDialog.setCancelable(假);
cDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…args){
//TODO自动生成的方法存根
List params1=new ArrayList();
params1.add(新的BasicNameValuePair(“org_id”,LoginActivity.orgid));
参数1.添加(新的基本名称对(“车辆注册号”,车辆注册号));
参数1.添加(新的BasicNameValuePair(“日期”,“2014-04-23”);
系统输出打印项次(“车辆日期编号fdfsd.”+检查日期);
//params1.add(新的BasicNameValuePair(“org_id”,LoginActivity.orgid));
jArray=jsonParser.makeHttpRequest(vehiclehistorysurll,“POST”,params1);
//Log.i(“tagconvertstr”,“[“+jArray+”]);
尝试
{
if(jArray!=null){
JSONObject c=jArray.getJSONObject(TAG_SRES);
//Log.i(“tagconvertstr”,“[”+c+“]”);
user=c.getJSONArray(标记车辆数组);
Log.i(“tagconvertstr1”,“[“+用户+”]”);
对于(inti=0;i你可以试试这个
List<HashMap<String,String>> listMap=new ArrayList<>();
for (HashMap<String,String> i:listMap) {
// access HashMap element
System.out.println(i.get("key"));
}
List listMap=new ArrayList();
for(HashMap i:listMap){
//访问HashMap元素
System.out.println(i.get(“key”);
}
您可以使用以下代码直接获得它,只需访问数组的最后一个索引即可
LatLng pinLocation = new LatLng(Double.parseDouble(vehiclehistory.get(i).get(TAG_Latitude)), Double.parseDouble(vehiclehistory.get(vehiclehistory.size()).get(TAG_Longitude)));
asyntask代码在哪里?@PankajKumar我发布了我的AsyncTask,例如,我有一个大小为7的arraylist,所有索引值都与最后一个索引相同,即6…为什么我无法获取其余的数组列表值?当你将其放入后执行时,这意味着在代码完成后,它将执行,认为这意味着它只有最后一个访问值,so如果您想在其中输入必须放在doInBackground方法内部的差异值,如果您想在外部使用该数组值,则需要在其中使用PublishProcess。为了便于参考,这是指向示例的链接,代码如下所示public String LangArray[]array;//…….code……//doInBackground(){//…代码…用于循环{array[i]=您的纬度;}publishProgress(array);}@Override受保护的void onProgressUpdate(Integer…array){super.onProgressUpdate(array);_percentField.setText(array[0]+“”);_percentField.setTextSize(array[1]+“”);…}onPostExecute(){//do same heare _percentField.setText(数组[6]+“”);}
LatLng pinLocation = new LatLng(Double.parseDouble(vehiclehistory.get(i).get(TAG_Latitude)), Double.parseDouble(vehiclehistory.get(vehiclehistory.size()).get(TAG_Longitude)));