Я достаточно глубоко изучил документацию Android и, в частности, сохранение состояний View. И на часть вопросов источники не смогли ответить.
Почему View, работающие с текстом, сохраняют этот самый текст, не имея id< /код>? В документации четко указано, что должен быть id, и это логично, ведь когда мы получаем данные из Bundle, нам нужно явно понимать, какому виджету они принадлежат.
По какой-то причине EditText сохраняет текст, а TextView нет, но почему? Зависит ли это от типа TextLayout? Я знаю, что это зависит от FreezesText и наличия идентификатора. Но EditText может сохранять текст без идентификатора. В чем причина разного поведения между ними и почему поведение сохранения не было реализовано в TextView, который является родительским для EditText.
Более того:
Почему EditText или Button не сохраняет текст так же, как TextView, и он не должен сохраняться без идентификатора.
Я хочу добавить, что в документации явно указано, что представление должно иметь уникальный идентификатор в текущее дерево иерархии представлений. Но если идентификаторы EditText и TextView совпадают, то при изменении конфигурации текст будет восстановлен в обоих виджетах. Это еще раз подтверждает восстановление по id.
Хочу отметить, что суть вопросов заключается не в реализации более логическое поведение виджета. Меня интересуют причины наличия такого поведения виджета. Какие-то логические рассуждения, которые я не могу найти и сформировать сам.
Я достаточно глубоко изучил документацию Android и, в частности, сохранение состояний View. И на часть вопросов источники не смогли ответить. [list] [*]Почему View, работающие с текстом, сохраняют этот самый текст, не имея id< /код>? В документации четко указано, что должен быть id, и это логично, ведь когда мы получаем данные из Bundle, нам нужно явно понимать, какому виджету они принадлежат. [*]По какой-то причине EditText сохраняет текст, а TextView нет, но почему? Зависит ли это от типа TextLayout? Я знаю, что это зависит от FreezesText и наличия идентификатора. Но EditText может сохранять текст без идентификатора. В чем причина разного поведения между ними и почему поведение сохранения не было реализовано в TextView, который является родительским для EditText. [/list]Более того: [list] [*]Почему EditText или Button не сохраняет текст так же, как TextView, и он не должен сохраняться без идентификатора. [*]Я хочу добавить, что в документации явно указано, что представление должно иметь уникальный идентификатор в текущее дерево иерархии представлений. Но если идентификаторы EditText и TextView совпадают, то при изменении конфигурации текст будет восстановлен в обоих виджетах. Это еще раз подтверждает восстановление по id. [/list] Хочу отметить, что суть вопросов заключается не в реализации более логическое поведение виджета. Меня интересуют причины наличия такого поведения виджета. Какие-то логические рассуждения, которые я не могу найти и сформировать сам.