首页 / 浏览问题 / 移动GIS / 问题详情
根据对象ID如何获取fieldvalue值
55EXP 2020年05月18日

根据GeometrySelectedListener选择监听,添加选中事件,获取到对象ID和数据集,然后获取到Recordset,最后根据ID得到moveTo当前对象,然后我想getFiledvalue获取不到。

Layer selected_layer = geometrySelectedEvent.getLayer();
String dataName =selected_layer.getDataset().getName();
int ID = geometrySelectedEvent.getGeometryID();
Recordset selecte_recordset = ((DatasetVector)selected_layer.getDataset()).getRecordset(false, CursorType.STATIC);
selecte_recordset.seekID(ID);
selecte_recordset.getFieldValue(key);   //此处都为null

我确定我对属性进行了赋值。

1、此代码获取属性fieldvalue是否有问题?

2、因为属性值都是#*%*#123格式的,是否是前缀导致的错误?但是我记得之前都这样写入了,在idesk上面都查看到了。

1个回答

您好,调试一下代码selecte_recordset是否有值,如果您是要查询选择对象的属性值可以直接这样使用:
1.直接通过图层获取选择将selection
2.获取的selection转换为记录及recordset,selection.toRecordset()
3.获取字段信息
9,127EXP 2020年05月18日
您好,我试了下。还是有问题。。获取到的filedvalue有的是啥都没有,有的显示为null。

我在想是不是我编录的时候标识符有问题,因为我都是以#*%*#,这样是不是识别不了呢?但是我在桌面上都查看了啊……
获取其他字段的属性值有没有问题呢?你把获取的值转换为string看一下是否有值
我现在是三种类型的点数据,其中一种可以正常获取,另外两种都不行,操作过程都一样。唯一不同的就是第一种标识符用的#,后面几种是#*%*#。有没有可能是这个符号问题呢?
您好,我这边使用您的标识符测试是没有问题的,您那边能否私信我您的数据,我这边测试一下,谢谢
谢谢,解决了。自己大意了。
...