package com.esri.android.editdemo; import com.esri.android.map.GraphicsLayer; import com.esri.android.map.MapView; import com.esri.android.map.ags.ArcGISTiledMapServiceLayer; import com.esri.android.map.event.OnSingleTapListener; import com.esri.core.geometry.Envelope; import com.esri.core.geometry.GeometryEngine; import com.esri.core.geometry.Point; import com.esri.core.geometry.SpatialReference; import com.esri.core.map.Graphic; import com.esri.core.symbol.SimpleMarkerSymbol; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast; public class EditDemoActivity extends Activity { LinearLayout linearLayout = null; MapView map = null; GraphicsLayer graphicsLayer = null; SpatialReference webMercator = SpatialReference.create(102100); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Context context = this; boolean useLinearLayout = true; // <-- mapView fails, but has button // boolean useLinearLayout = false; // <-- mapView works, but no button if (useLinearLayout) { linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); setContentView(linearLayout); Button testButton = new Button(this); testButton.setText("Hello"); testButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(context, "Test", Toast.LENGTH_SHORT).show(); } }); linearLayout.addView(testButton); map = new MapView(this); linearLayout.addView(map); } else { map = new MapView(this); setContentView(map); } // Add the ArcGIS Online layer to the map. map.addLayer(new ArcGISTiledMapServiceLayer("" + "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer")); map.setOnSingleTapListener(new OnSingleTapListener() { public void onSingleTap(float x, float y) { Point newPoint = map.toMapPoint(new Point(x, y)); SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(Color.RED, 20, SimpleMarkerSymbol.STYLE.CIRCLE); graphicsLayer.addGraphic(new Graphic(newPoint, simpleMarkerSymbol)); } }); // Set the extent to ESRI Redlands Campus Point minPoint = GeometryEngine.project(-117.200, 34.057, webMercator); Point maxPoint = GeometryEngine.project(-117.198, 34.059, webMercator); Envelope extent = new Envelope(minPoint.getX(), minPoint.getY(), maxPoint.getX(), maxPoint.getY()); extent.inflate(10000, 10000); map.setExtent(extent); // Create a graphics layer and add it to the map. graphicsLayer = new GraphicsLayer(); map.addLayer(graphicsLayer); } protected void onPause() { super.onPause(); map.pause(); } protected void onResume() { super.onResume(); map.unpause(); } }
Solved! Go to Solution.
package com.esri.android.editdemo; import com.esri.android.map.GraphicsLayer; import com.esri.android.map.MapView; import com.esri.android.map.ags.ArcGISTiledMapServiceLayer; import com.esri.android.map.event.OnSingleTapListener; import com.esri.core.geometry.Envelope; import com.esri.core.geometry.GeometryEngine; import com.esri.core.geometry.Point; import com.esri.core.geometry.SpatialReference; import com.esri.core.map.Graphic; import com.esri.core.symbol.SimpleMarkerSymbol; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.Toast; public class EditDemoActivity extends Activity { MapView map = null; GraphicsLayer graphicsLayer = null; SpatialReference webMercator = SpatialReference.create(102100); PopupWindow popupWindow = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); map = new MapView(this); setContentView(map); // Add the ArcGIS Online layer to the map. map.addLayer(new ArcGISTiledMapServiceLayer("" + "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer")); map.setOnSingleTapListener(new OnSingleTapListener() { public void onSingleTap(float x, float y) { Point newPoint = map.toMapPoint(new Point(x, y)); SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(Color.RED, 20, SimpleMarkerSymbol.STYLE.CIRCLE); graphicsLayer.addGraphic(new Graphic(newPoint, simpleMarkerSymbol)); } }); // Set the extent to ESRI Redlands Campus Point minPoint = GeometryEngine.project(-117.200, 34.057, webMercator); Point maxPoint = GeometryEngine.project(-117.198, 34.059, webMercator); Envelope extent = new Envelope(minPoint.getX(), minPoint.getY(), maxPoint.getX(), maxPoint.getY()); extent.inflate(10000, 10000); map.setExtent(extent); // Create a graphics layer and add it to the map. graphicsLayer = new GraphicsLayer(); map.addLayer(graphicsLayer); // Post create PopupWindow since it created during onCreate(). final Context context = this; map.post( new Runnable() { public void run() { popupWindow = new PopupWindow(context); LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.HORIZONTAL); Button button = new Button(context); button.setText("Clear"); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { graphicsLayer.removeAll(); Toast.makeText(context, "Graphics Layer Cleared", Toast.LENGTH_SHORT).show(); } }); linearLayout.addView(button); popupWindow.setContentView(linearLayout); popupWindow.showAtLocation(linearLayout, Gravity.LEFT | Gravity.BOTTOM, 10, 10); popupWindow.update(64, 64); } } ); } protected void onPause() { super.onPause(); map.pause(); } protected void onResume() { super.onResume(); map.unpause(); } }package com.esri.android.editdemo; import com.esri.android.map.GraphicsLayer; import com.esri.android.map.MapView; import com.esri.android.map.ags.ArcGISTiledMapServiceLayer; import com.esri.android.map.event.OnSingleTapListener; import com.esri.core.geometry.Envelope; import com.esri.core.geometry.GeometryEngine; import com.esri.core.geometry.Point; import com.esri.core.geometry.SpatialReference; import com.esri.core.map.Graphic; import com.esri.core.symbol.SimpleMarkerSymbol; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.Toast; public class EditDemoActivity extends Activity { MapView map = null; GraphicsLayer graphicsLayer = null; SpatialReference webMercator = SpatialReference.create(102100); PopupWindow popupWindow = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); map = new MapView(this); setContentView(map); // Add the ArcGIS Online layer to the map. map.addLayer(new ArcGISTiledMapServiceLayer("" + "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer")); map.setOnSingleTapListener(new OnSingleTapListener() { public void onSingleTap(float x, float y) { Point newPoint = map.toMapPoint(new Point(x, y)); SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(Color.RED, 20, SimpleMarkerSymbol.STYLE.CIRCLE); graphicsLayer.addGraphic(new Graphic(newPoint, simpleMarkerSymbol)); } }); // Set the extent to ESRI Redlands Campus Point minPoint = GeometryEngine.project(-117.200, 34.057, webMercator); Point maxPoint = GeometryEngine.project(-117.198, 34.059, webMercator); Envelope extent = new Envelope(minPoint.getX(), minPoint.getY(), maxPoint.getX(), maxPoint.getY()); extent.inflate(10000, 10000); map.setExtent(extent); // Create a graphics layer and add it to the map. graphicsLayer = new GraphicsLayer(); map.addLayer(graphicsLayer); // Post create PopupWindow since it created during onCreate(). final Context context = this; map.post( new Runnable() { public void run() { popupWindow = new PopupWindow(context); LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.HORIZONTAL); Button button = new Button(context); button.setText("Clear"); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { graphicsLayer.removeAll(); Toast.makeText(context, "Graphics Layer Cleared", Toast.LENGTH_SHORT).show(); } }); linearLayout.addView(button); popupWindow.setContentView(linearLayout); popupWindow.showAtLocation(linearLayout, Gravity.LEFT | Gravity.BOTTOM, 10, 10); popupWindow.update(64, 64); } } ); } protected void onPause() { super.onPause(); map.pause(); } protected void onResume() { super.onResume(); map.unpause(); } }import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import com.esri.android.map.Layer;
import com.esri.android.map.MapView;
import com.esri.android.map.PopupContainer;
import com.esri.android.map.PopupView;
import com.esri.android.map.ags.ArcGISDynamicMapServiceLayer;
import com.esri.android.map.ags.ArcGISFeatureLayer;
import com.esri.android.map.ags.ArcGISLayerInfo;
import com.esri.android.map.event.OnSingleTapListener;
import com.esri.core.geometry.Envelope;
import com.esri.core.geometry.SpatialReference;
import com.esri.core.map.FeatureSet;
import com.esri.core.map.Graphic;
import com.esri.core.map.popup.PopupInfo;
import com.esri.core.tasks.ags.query.Query;
import com.esri.core.tasks.ags.query.QueryTask;
public class MapscreenMain extends Activity {
private MapView map;
private PopupContainer popupContainer;
private PopupDialog popupDialog;
private ProgressDialog progressDialog;
private AtomicInteger count;
PopupWindow popupWindow = null;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load a webmap.
map = new MapView(this, "http://www.arcgis.com/home/item.html?id=ec84873154cf4d7f07", "", "");
setContentView(map);
// Post create PopupWindow since it created during onCreate().
final Context context = this;
map.post(
new Runnable()
{
public void run()
{
popupWindow = new PopupWindow(context);
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
Button button = new Button(context);
button.setText("Clear");
linearLayout.addView(button);
popupWindow.setContentView(linearLayout);
popupWindow.showAtLocation(linearLayout, Gravity.LEFT | Gravity.BOTTOM, 10, 10);
popupWindow.update(64, 64);
}
});
// Tap on the map and show popups for selected features.
map.setOnSingleTapListener(new OnSingleTapListener() {
private static final long serialVersionUID = 1L;.....................ect.
public void onSingleTap(float x, float y) {