Ответ 1
Можно ли динамически загружать эти файлы xml во время выполнения в приложение?
Нет, извините.
Если нет, возможно ли переопределить привязку между XML-интерфейсом UI и ресурсами XML таким образом, чтобы я мог привязываться к своему динамически загруженному XML файлу вместо одного значения res/values?
Ничего в res/values/
никогда не используется, если вы не используете его. Следовательно, нечего "переопределять".
Например, предположим, что у вас есть TextView
. Вы хотите, чтобы он отображал текст. Вы хотите, чтобы текст был локализован. Как правило, вы должны установить ряд строковых ресурсов, по одному на перевод, а затем использовать эти строковые ресурсы с помощью TextView
(например, android:text
в макете или setText()
в Java). В вашем случае вы не будете устанавливать строковые ресурсы, но "сделайте свое дело" и вызовите setText()
по мере необходимости.
То, что вы теряете в своем подходе, - это автоматическое преобразование. Если пользователь переключает языки во время работы вашего приложения, Android будет рассматривать это как изменение конфигурации и перезапустить ваши действия по мере их возврата на передний план. Обычно это автоматически загружается в новые ресурсы строки. В вашем случае это не будет, потому что вы не используете строковые ресурсы. Вместо этого вам нужно будет сказать Android, чтобы он не перезапускал ваши действия (через android:configChanges
) и вручную перезагружал все ваши виджеты TextView
и т.д. Самостоятельно. И если вы забудете один, ну, пользователь просто ввернут.
ИМХО, если кто-то не укажет пистолет у вас в голове, чтобы заставить вас попытаться сменить перевод, не отправляя новые версии приложения, просто используйте строковые ресурсы и отправляйте новые версии приложения.