Android 我想在弹出窗口中显示文件和属性
我想在单击点时在弹出窗口中显示文件和属性。但我得到了空指针异常。我为什么回到我身边?你能帮忙吗?我该怎么办?我确实喜欢esri android样本。但它不起作用Android 我想在弹出窗口中显示文件和属性,android,arcgis,Android,Arcgis,我想在单击点时在弹出窗口中显示文件和属性。但我得到了空指针异常。我为什么回到我身边?你能帮忙吗?我该怎么办?我确实喜欢esri android样本。但它不起作用 /// long press to map mapView.setOnLongPressListener(new OnLongPressListener() { private static final long serialVersionUID = 1L; // ArcGISFeatureLa
/// long press to map
mapView.setOnLongPressListener(new OnLongPressListener() {
private static final long serialVersionUID = 1L;
// ArcGISFeatureLayer
private ArcGISFeatureLayer featureLay = null;
/// override onLongPress
@Override
public boolean onLongPress(final float v, final float v1) {
if (mapView.isLoaded()) {
if (progressDialog != null && progressDialog.isShowing()
&& count.intValue() == 0)
//dismiss dialog
progressDialog.dismiss();
// Get the point featurelayer
Layer[] layers = mapView.getLayers();
for (Layer layer : layers) {
if (layer instanceof ArcGISFeatureLayer) {
ArcGISFeatureLayer fl = (ArcGISFeatureLayer) layer;
if (fl.getGeometryType() == Geometry.Type.POINT) {
featureLay = fl;
break;
}
}
}
//// if featureLay null
if (featureLay == null)
return false;
ArcGISPopupInfo popupInfos = (ArcGISPopupInfo) featureLay.getPopupInfos();
///!!!!!!!!!!!!!!! return to me null////////////
if (popupInfos == null)
return false;
// Create a new feature
Point point = mapView.toMapPoint(v, v1);
Feature feature2;
FeatureType[] types = featureLay.getTypes();
if (types == null || types.length < 1) {
FeatureTemplate[] templates = featureLay
.getTemplates();
if (templates == null || templates.length < 1) {
feature2 = new Graphic(point, null);
} else {
feature2 = featureLay.createFeatureWithTemplate(
templates[0], point);
}
} else {
feature2 = featureLay.createFeatureWithType(
featureLay.getTypes()[0], point);
}
// Instantiate a PopupContainer
popupContainer = new PopupContainer(mapView);
// popup create
Popup popupp = featureLay.createPopup(mapView, 0, feature2);
popupContainer.addPopup(popupp);
popupp.setEditMode(true);
createEditorBar(featureLay, false);
// Create a dialog for the popups and display it.
popupDialog = new PopupDialog(mapView.getContext(),
popupContainer);
// show popup
popupDialog.show();
}
return true;
}
});
///长按可映射
setOnLongPressListener(新的OnLongPressListener(){
私有静态最终长serialVersionUID=1L;
//ArcGISFeatureLayer
私有ArcGISFeatureLayer featureLay=null;
///超控onLongPress
@凌驾
公共布尔onLongPress(最终浮点v,最终浮点v1){
if(mapView.isLoaded()){
if(progressDialog!=null&&progressDialog.isShowing()
&&count.intValue()=0)
//取消对话框
progressDialog.disclose();
//获取点要素图层
Layer[]layers=mapView.getLayers();
用于(图层:图层){
if(ArcGISFeatureLayer的图层实例){
ArcGISFeatureLayer fl=(ArcGISFeatureLayer)层;
if(fl.getGeometryType()==Geometry.Type.POINT){
featureLay=fl;
打破
}
}
}
////如果featureLay为空
如果(featureLay==null)
返回false;
ArcGISPopupInfo-popupInfos=(ArcGISPopupInfo)featureLay.getPopupInfos();
///!!!!!!!!!!!!!!!!!!!!!!!!!返回给我////////////
if(popupInfos==null)
返回false;
//创建新功能
Point Point=地图视图。到点(v,v1);
特征2;
FeatureType[]类型=featureLay.getTypes();
if(types==null | | types.length<1){
FeatureTemplate[]模板=featureLay
.getTemplates();
if(templates==null | | templates.length<1){
feature2=新图形(点,空);
}否则{
feature2=featureLay.createFeatureWithTemplate(
模板[0],点);
}
}否则{
feature2=featureLay.createFeatureWithType(
featureLay.getTypes()[0],点);
}
//实例化PopupContainer
popupContainer=新的popupContainer(mapView);
//弹出式创建
Popup Popup=featureLay.createPopup(地图视图,0,feature2);
popupContainer.addPopup(popupp);
popupp.setEditMode(真);
createEditorBar(featureLay,false);
//为弹出窗口创建一个对话框并显示它。
popupDialog=新建popupDialog(mapView.getContext(),
popupContainer);
//显示弹出窗口
show();
}
返回true;
}
});
请张贴stacktrace。在哪一行获得空指针异常?ArcGISPopupInfo popupInfos=(ArcGISPopupInfo)featureLay.getPopupInfos();我在这些行中得到空值:Popup popupp=featureLay.createPopup(mapView,0,feature2);你能把stacktrace贴出来吗?