hello everybody. i use querytask sample and it is worked.but i have an error.when i search a place show a toast that tell your place founded but don't change color of feature.how i can fix it?? this is my code : thanks private class AsyncQueryTask extends AsyncTask<String, Void, FeatureResult> {
@Override
protected void onPreExecute() {
progress = new ProgressDialog(MainActivity.this);
progress = ProgressDialog.show(MainActivity.this, "",
"Please wait....query task is executing");
}
@Override
protected FeatureResult doInBackground(String... queryArray) {
if (queryArray == null || queryArray.length <= 1)
return null;
String url = queryArray[0];
QueryParameters qParameters = new QueryParameters();
String whereClause = queryArray[1];
SpatialReference sr = SpatialReference.create(102100);
qParameters.setGeometry(map.getExtent());
qParameters.setOutSpatialReference(sr);
qParameters.setReturnGeometry(true);
qParameters.setWhere(whereClause);
QueryTask qTask = new QueryTask(url);
try {
FeatureResult results = qTask.execute(qParameters);
return results;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(FeatureResult results) {
String message = "No result comes back";
if (results != null) {
int size = (int) results.featureCount();
for (Object element : results) {
progress.incrementProgressBy(size / 100);
if (element instanceof Feature) {
Feature feature = (Feature) element;
Graphic graphic = new Graphic(feature.getGeometry(),
feature.getSymbol(), feature.getAttributes());
graphicsLayer.addGraphic(graphic);
SimpleRenderer sr = new SimpleRenderer(new SimpleFillSymbol(Color.RED));
graphicsLayer.setRenderer(sr);
map.addLayer(graphicsLayer);
}
}
message = String.valueOf(results.featureCount())
+ " results have returned from query.";
}
progress.dismiss();
Toast toast = Toast.makeText(MainActivity.this, message,
Toast.LENGTH_LONG);
toast.show();
boolQuery = false;
}
}
... View more