I came to the same conclusion as droidDev due to this: " Iterator<Map<String, String>> iterator = response.iterator(); "
If 'response' isnt a class variable, that would not compile. Also, in his second comment he pretty much confirmed that was the case. I dont think he meant to say that by omitting the local deceleration it became a member variable, rather that because he made the second deceleration, it became local (which he didnt know would happen, since he needs some studying on Scopes :-P ) On Wednesday, January 23, 2013 6:26:00 PM UTC-8, Lew wrote: > > droidDev wrote: > > You forgot to attribute the quote there, sport. > Lew said: > >> ".. What you said there doesn't make sense. A variable has to be >> explicitly declared as a class or instance member; it doesn't just >> magically appear when you remove a local variable." >> >> I think what John was describing does make sense. He had inadvertently >> created a new response var in an inner scope, thereby effectively masking >> out his pre-existing instance var of the same name; therefore the response >> data was being discarded each time the inner scope was exited. >> > How do you know that? His code showed nothing like that. There was no > instance variable, > or even class definition shown. He referred to a 'type declaration " > Map<String, String>"' but > nothing was shown declared to be that type. The only place that appeared > was in a generic > type argument, but removing that would not un-shadow ("mask" is not a Java > term) an instance > variable. > > Evidence? > >> "John Merlino" wrote: >> >>> I have a thread to make a web service request. And then I get the data >>> and store it in response variable. Now I need to add items to the map >>> on the main thread, but how do i get the response data back in the >>> main thread. Here is what I have: >>> >>> private void processHistory(final String authkey, final String unitId) >>> { >>> new Thread(){ >>> public void run(){ >>> List<Map<String, String>> response = >>> WebService.getHistoryData("today",unitId,authkey); >>> >>> >>> myHandler.post(myRunnable); >>> >>> } >>> }.start(); >>> } >>> >>> final Runnable myRunnable = new Runnable() { >>> public void run() { >>> >>> Iterator<Map<String, String>> iterator = >>> response.iterator(); >>> >>> while(iterator.hasNext()){ >>> Map<String, String> item = >>> iterator.next(); >>> >>> mMap.addMarker(new >>> MarkerOptions() >>> .position(new >>> LatLng(Double.parseDouble(item.get("latitude")), >>> Double.parseDouble(item.get("longitude")))) >>> .title(item.get("address"))); >>> } >>> >>> } >>> }; >>> >>> > -- > Lew > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en