вторник, марта 15, 2016

Custom view, EditText, проблема при восстановлении состояния (use saveEnabled(fals))

С большим интересом потратил несколько часов на локализацию следующей проблемы:
- у меня есть custom view
- это композитный view, внутри которого используется EditText
- таких view у меня на экране несколько
- custom view обрабатывает сохранение и восстановление состояния в методах onSaveInstanceState и onRestoreInstanceState
- дебаггер показывает, что вызов этих методов и их работа выполняются корректно.

Но: после смены ориентации экрана в каждом из этих view содержится текст, который был введён в самый нижний из этих view.

Решение:
для EditText, входящего в состав композитного view, запретить сохранение состояния:

<EditText
    android:id="@+id/value"
    android:saveEnabled="false"
    .../>