Android: как получить грязные (измененные) свойства - PullRequest
2 голосов
/ 13 мая 2010

Как получить грязные (измененные) свойства (любые подклассы элементов управления представления) среди ряда свойств макета. Есть ли у android грязный флаг, чтобы пометить, есть ли в макете какое-либо поле с измененным содержимым ??

На самом деле, у меня есть макет, в котором есть несколько edittexts, spinner, datewidgets. Теперь сохранение должно сделать запрос к серверу, только если пользователь что-то изменил. Я хотел знать, как я могу проверить, если пользователь имеет что-то изменилось в этом макете или нет. У андроида есть какой-либо флаг или что-то, что устанавливается при изменении пользователем какого-либо элемента управления вводом?

Хмм .. У Blackberry есть метод isDirty () {логический net.rim.device.api.ui.Manager.isDirty ()}.

Ответы [ 3 ]

4 голосов
/ 13 мая 2010

Деятельность не тесно связана с элементами вашего макета, поэтому вам придется делать это самостоятельно. Вы можете сохранить карту, где ключ является идентификатором элемента макета, а значение является логическим значением, которое сигнализирует о том, что элемент был изменен пользователем. Возможно, вам потребуется настроить прослушиватели для каждого элемента (например, OnKeyListener для ваших EditTexts) и дополнительно захватить их начальные значения.

0 голосов
/ 18 сентября 2013

С опозданием с моим ответом, но способ, которым я это делаю, - хранить поля формы (действия) в объекте контейнера (для проверки и т. Д.) Этот контейнерный объект реализует java.lang.Comparable интерфейс, где T тот же класс, что и контейнер.

Затем метод CompareTo (T) возвращает

  • 0, если оба объекта равны (таким образом, содержимое формы не изменилось).
  • -1 означает, что что-то изменилось и, следовательно, данные грязные

Вы всегда можете вернуть другие числовые значения, чтобы указать, что именно изменилось, если требуется.

0 голосов
/ 13 мая 2010

У андроида есть грязный флаг, чтобы пометить если макет имеет любое поле, которое имеет измененный контент ??

Нет, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...