Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何获取脏(更改)属性_Android - Fatal编程技术网

Android:如何获取脏(更改)属性

Android:如何获取脏(更改)属性,android,Android,如何在布局上的多个属性中获取脏(更改)属性(视图的任何控件子类)。android是否有脏标志来标记布局中是否有任何字段的内容发生了更改 实际上,我有一个布局,有一些编辑文本,微调器,datewidgets。现在,只有当用户修改了任何内容时,执行保存操作才能向服务器发出请求。我想知道如何检查用户是否在该布局中更改了任何内容。当用户修改任何输入控件时,android是否有任何标志或设置自身的内容 Blckberry确实有isDirty(){boolean net.rim.device.api.ui.

如何在布局上的多个属性中获取脏(更改)属性(视图的任何控件子类)。android是否有脏标志来标记布局中是否有任何字段的内容发生了更改

实际上,我有一个布局,有一些编辑文本,微调器,datewidgets。现在,只有当用户修改了任何内容时,执行保存操作才能向服务器发出请求。我想知道如何检查用户是否在该布局中更改了任何内容。当用户修改任何输入控件时,android是否有任何标志或设置自身的内容

Blckberry确实有isDirty(){boolean net.rim.device.api.ui.Manager.isDirty()}方法

安卓是否有脏标志要标记 如果布局中的任何字段具有 更改内容


不,抱歉。

活动与布局中的元素没有紧密耦合,因此您必须自己完成此操作。您可以维护一个映射,其中键是布局元素的id,值是一个布尔值,表示该元素是否已被用户修改。您可能需要在每个元素上设置侦听器(例如EditText的OnKeyListener)并另外捕获它们的初始值。

我的回答有点晚,但我这样做的方式是将表单(活动)字段存储在容器对象中(用于验证等)。此容器对象实现 java.lang.Compariable接口,其中T是与容器相同的类

然后,compareTo(T)方法返回

  • 如果两个对象相等(因此表单内容未更改),则为0
  • -1表示某些内容已更改,因此数据变脏

如果需要,您始终可以返回其他数值,以指示发生了什么变化。

如果您解释一下您要实现的目标,可能会更容易回答您的问题。是的,这似乎是唯一可行的解决办法。我的布局中的每种类型的视图都不能有一个通用的侦听器,这样,如果其中任何一种视图发生更改,我就可以在编辑事件上适当地设置标志??这将是一个可伸缩的。是的,伙计……完全可以。您可以保留一个初始值的集合和一个当前值的集合(用于进行比较)或一个表示干净/脏的布尔标志的集合,两者都由元素id键控。您在某处有一个助手方法,用于检查更改。然后,您可以重用需要附加到所有UI元素的每种监听器的单个实例,监听器所做的就是调用helper方法。