首页 / 浏览问题 / 移动GIS / 问题详情
Android属性字段问题
45EXP 2022年05月23日
我将记录集里面的属性和字段取出来,铺成了一个列表。如果我修改了其中一条的属性值,怎么判断修改了哪一个属性值,是先用edit()锁定记录集,然后用户在输入框修改的值,直接用update提交就能保存嘛。
问题关闭原因: 已解决

1个回答

您好,根据您的描述,如果您想要判断修改了哪一个属性,您可以复制一份原记录集,然后将修改后的记录集与原记录集的拷贝对比,在用edit修改记录后,应该使用update提交的
3,690EXP 2022年05月23日

如果像这样的呢,我就把空的位置输入一个值,或者我修改一个值,直接用edit和upadate就可以了嘛

是这样的,请问您是遇到了数据集无法更新的问题吗,还是更新之后这两个函数返回false呢,如果有报错请附上错误信息,如果没有报错您可以在断点中查看失效位置。
没有遇到问题,就是不知道怎么怎么个操作流程修改属性

您可以参考以下链接中的代码

http://support.supermap.com.cn/product/CodeLibrary.aspx?id=640

可以对导入的shp数据的属性值进行修改嘛,我现在导入的shp数据就是无法修改的,我通过他

recordset.isReadOnly()来判断他只是只读的,这个状态能改变嘛。如果是只读的用edit会报错
您用桌面打开这个工作空间也是只读的吗,如果是只读的您可以用桌面将其数据源以独占方式打开并保存,然后再放到移动端上打开编辑哈
我没有桌面的软件,但是这个工作空间在别的app是可以读写的,是不是我哪里写错了
您方便把代码发到我的邮箱吗,如果不方便的话可以写一个可以重现的代码,发送到1426221195@qq.com,这边给您看下哈
可以向日葵远程嘛
因为不同于组件开发,安卓需要使用测试机,所以远程效率可能不高,所以还是麻烦您发下代码哈
我先给你个工作控件和shp文件吧。因为这里面代码逻辑粘贴出来很麻烦。你试试你代码里面可以读嘛,我在其他的app是可以的。
您好,我的demo是可以编辑Map1数据源中点数据集的“地类”的属性的,

1.如果按照您说的数据源是以独占方式打开的话,这边给您我的demo

链接:https://pan.baidu.com/s/1gA61wk0DCuHbnzZ7dPZ1sw
提取码:8754

2.如果您不确定您的数据源是以独占方式打开的,这边给您独占的打开的数据

链接:https://pan.baidu.com/s/1mPT-DeQDL4CBxEkJoPkS6w
提取码:8754

希望可以帮助到您!
好的 我先下载下来看看

你的recordset = datasetVector.query(ids, CursorType.STATIC);
我可以用的这个代码替代嘛

boolean ab = recordset.seekID(geometryid); 他俩意义差不多吧

请问您这样做是想获取到指定记录吗,

boolean ab = recordset.seekID(geometryid)是在记录集中搜索指定ID的记录并定位该记录为当前记录集,
可以代替recordset.movefirst(),
datasetVector.query(ids, CursorType.STATIC)
要获取id数组并返回一个记录集,不能替代哈

我是这样写的, geometryid这个是选择监听到的几何对象id。这样写可以嘛

您这里是要读取出记录集中的数据再放到输入框里的,可以的哈

这个是可以的,然后我在recycleview适配器里面加了一个判断,导致现在无法修改。

判断如果是只读状态输入框变成TextView,否则是EditView。

还有就是我判断是哪个字段的输入框改变了,我是不是需要用EditView监听然后改list里面的数据,最后将整个list里面的字段 和值。一起更新。

您的意思是要一次性编辑多条数据的话,按照您的思路监听editText批量更新或者在焦点从editText移除时就更新

最后更新不更新有右上角的那个按钮来决定,如果不更新用户直接退出就行,点击确定按钮更新记录就可以。

现在主要我判断记录集是否是只读给我返回的是,就没法去修改。

请问您下载了上述链接中的数据吗,那里面的数据可以编辑,看您想编辑的应该是xbm数据集的记录,我这边编辑xbm中的记录没问题
下了,我也替换到代码里面了,然后这个recordset.isReadOnly()还是返回的true,我还是把这个判断去掉吧。我要实现编辑xbm的记录。
好了解决了 问题出在 recordset = datasetVector.query(ids, CursorType.STATIC);

CursorType这个状态,我用的STATIC,用动态游标就好了。我对这块有点不太懂,这俩天麻烦您了。
...