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

时间:2010-05-13 14:21:35

标签: android

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

实际上,我的布局中有一些edittexts,spinners,datewidgets。只有当用户修改了任何内容时,才进行保存应该向服务器发出请求。我想知道如何检查用户是否有改变了该布局中的任何内容或者没有。当用户修改任何输入控件时,android是否有任何标志或其他东西设置?

嗯..Blckberry是否有isDirty(){boolean net.rim.device.api.ui.Manager.isDirty()}方法。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

  

android是否有标记的脏标志   如果布局有任何具有的字段   改变了内容??

不,抱歉。

答案 2 :(得分:0)

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

然后compareTo(T)方法返回

  • 0如果两个对象相等(从而表格内容没有改变)。
  • -1表示某些内容发生了变化,因此数据很脏

如果需要,您始终可以返回其他数字值以指示确切更改的内容。