Skip to content

Instantly share code, notes, and snippets.

@taywils
Last active December 17, 2015 15:39
Show Gist options
  • Save taywils/5633166 to your computer and use it in GitHub Desktop.
Save taywils/5633166 to your computer and use it in GitHub Desktop.
QueryGooglePlaces onPostExecute method
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
Document xmlResult = loadXMLFromString(result);
NodeList nodeList = xmlResult.getElementsByTagName("result");
for(int i = 0, length = nodeList.getLength(); i < length; i++) {
Node node = nodeList.item(i);
if(node.getNodeType() == Node.ELEMENT_NODE) {
Element nodeElement = (Element) node;
Place place = new Place();
Node name = nodeElement.getElementsByTagName("name").item(0);
Node vicinity = nodeElement.getElementsByTagName("vicinity").item(0);
Node rating = nodeElement.getElementsByTagName("rating").item(0);
Node reference = nodeElement.getElementsByTagName("reference").item(0);
Node id = nodeElement.getElementsByTagName("id").item(0);
Node geometryElement = nodeElement.getElementsByTagName("geometry").item(0);
NodeList locationElement = geometryElement.getChildNodes();
Element latLngElem = (Element) locationElement.item(1);
Node lat = latLngElem.getElementsByTagName("lat").item(0);
Node lng = latLngElem.getElementsByTagName("lng").item(0);
float[] geometry = {Float.valueOf(lat.getTextContent()),
Float.valueOf(lng.getTextContent())};
int typeCount = nodeElement.getElementsByTagName("type").getLength();
String[] types = new String[typeCount];
for(int j = 0; j < typeCount; j++) {
types[j] = nodeElement.getElementsByTagName("type").item(j).getTextContent();
}
place.setVicinity(vicinity.getTextContent());
place.setId(id.getTextContent());
place.setName(name.getTextContent());
if(null == rating) {
place.setRating(0.0f);
} else {
place.setRating(Float.valueOf(rating.getTextContent()));
}
place.setReference(reference.getTextContent());
place.setGeometry(geometry);
place.setTypes(types);
places.add(place);
}
}
PlaceAdapter placeAdapter = new PlaceAdapter(HttpTestActivity.this, R.layout.httptestrow, places);
listView = (ListView)findViewById(R.id.httptestlist_listview);
listView.setAdapter(placeAdapter);
} catch (Exception e) {
Log.e("ERROR", e.getMessage());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment