Postexecute yöntemimde haritada birden çok işaretçiyi güncelleştiremiyorum çünkü json'dan Lat-Lon'a ihtiyacım var, Bu durumda benim uygulama 4-5 saniye asmak almak ve bazen mesajJSON'dan yanıt aldıktan sonra birden fazla işaretçi ekleniyor ancak uygulama ana iş parçacığı üzerinde çok fazla iş yapıyor olabilir
yanıt vermiyor
uygulamasını gösterir, burada benim Kodunuzu olduğu
try{ JSONArray jsonArray = jsonObject.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { jsonObject2=jsonArray.getJSONObject(i); ViewAgency_Set_Get set_Get = new ViewAgency_Set_Get(); set_Get.setservices_type(jsonObject2.getString("fld_category_name")); set_Get.setCity(jsonObject2.getString("fld_city_name")); set_Get.setPincode(jsonObject2.getString("fld_pincode")); set_Get.setSalary(jsonObject2.getString("fld_budget")); set_Get.setFulltime_preference(jsonObject2.getString("fld_full_time_preference")); set_Get.setParttimePreference(jsonObject2.getString("fld_part_time_preference")); set_Get.setAvailabiliy(jsonObject2.getString("fld_availability")); set_Get.setExperience(jsonObject2.getString("fld_exp_from")+"-"+jsonObject2.getString("fld_exp_to")); set_Get.setDate(jsonObject2.getString("fld_posting_date")); set_Get.setVendor_worker_id(jsonObject2.getString("fld_post_your_req_id")); set_Get.setApply_job("Apply"); JSONArray jsonArray2 = jsonObject2.getJSONArray("getjobSpecItems"); for (int j = 0; j < jsonArray2.length(); j++) { JSONObject jsonObject3 = jsonArray2.getJSONObject(j); Grid_specs grid_specs = set_Get.new Grid_specs(); grid_specs.setSpeciality(jsonObject3.getString("fld_sub_category_name")); set_Get.list_Specs.add(grid_specs); } arrayList_jobs.add(set_Get); final Geocoder geocoder = new Geocoder(getActivity()); final String zip = jsonObject2.getString("fld_pincode"); List<Address> addresses = geocoder.getFromLocationName(zip, 1); if (addresses != null && !addresses.isEmpty()) { address = addresses.get(0); String message = String.format("Latitude: %f, Longitude: %f", address.getLatitude(), address.getLongitude()); markerOptions = new MarkerOptions().position( new LatLng(address.getLatitude(), address.getLongitude())) .title("Job Posted for:- "+jsonObject2.getString("fld_category_name")); // changing marker color if (arrayList_jobs.get(i).getservices_type().equals("Tutor")){ markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_tutor)); } if (arrayList_jobs.get(i).getservices_type().equals("Maid")){ markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_maid)); }if (arrayList_jobs.get(i).getservices_type().equals("Driver")){ markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_driver)); }if (arrayList_jobs.get(i).getservices_type().contains("Chef")){ markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_chef)); }if (arrayList_jobs.get(i).getservices_type().equals("Helper")){ markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_help)); } marker =googleMap.addMarker(markerOptions); } } CameraPosition cameraPosition = new CameraPosition.Builder() .target(new LatLng(latitude, longitude)).zoom(13).build(); googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); SearchJobListAdapter adapter = new SearchJobListAdapter(getActivity(), arrayList_jobs, "Show",manager); search_listView.setAdapter(adapter); }catch(Exception e){ e.printStackTrace(); }
Değerli yorumunuz için teşekkür ederim, her iki çözüm yerine uygulamayı bir noktada asılırken denedim, ekranın önündeki bir tür ilerleme çubuğu göstererek işaretleyicilerimi güncelleyebilir miyim. – Decveen
Tabii ki yapabilirsiniz ve yapmalısınız. Binlerce çözüm ve farklı tarzdaki ilerleme çubukları/göstergeleri vardır, bu yüzden birini seçmelisiniz. temel olarak, size düzeni eklemeniz gerekir, sonra bir istekte bulunduğunuzda ve işaretçiler oluşturulduğunda ve hazır olduğunuzda onResponse bunu durdurursunuz :) – djodjo