AnsweredAssumed Answered

getTotalFeatureCount() always 0

Question asked by cloftis_RTI_GST on Jul 19, 2018
Latest reply on Jul 20, 2018 by cloftis_RTI_GST

Using ArcGIS android API,

I need to count the number of features in a specfic layer for use later in my app.

 

APPROACH:

After my map's getLoadStatus() returns "LOADED", I iterate through my map's layers. When the appropriate layer is found I cast the layer to a FeatureLayer, then get the feature table and count of items in that table. Code below:

   // Note 'map' is an ArcGISMap object
   MainActivity.this.arcGISMap = map; // save ArcGISMap reference for later
   MainActivity.this.mMapView.setMap(map);
   LayerList mMapOperationalLayers = MainActivity.this.arcGISMap.getOperationalLayers(); // get map's LayerList
   for (final Layer layer : mMapOperationalLayers) {
      Log.d("layer", layer.getName());
      if ((layer.getName().toUpperCase().equals("LAYER_OF_INTEREST")) {
         MainActivity.this.layer_of_interest = (FeatureLayer) layer; // save layer reference for later
       //MainActivity.this.pages_count = (((FeatureLayer) layer).getFeatureTable()).getTotalFeatureCount();
         MainActivity.this.pages_count = MainActivity.this.layer_of_interest.getFeatureTable().getTotalFeatureCount();
         Log.d("loadMobileMapPackage", "pages_count:" + MainActivity.this.pages_count);
      } // end if
   } // end for

 

PROBLEM

'getTotalFeatureCount()' always returns 0 at runtime, but when I set a breakpoint and step through the code I get the expected feature count for the layer of interest. Is there some race condition with counting?

 

QUESTION:

What am I doing wrong? Is there a better way to count the number of features having a non-zero attribute value in a specific map layer?

Outcomes