Intereting Posts
Часы Emulator не соответствуют часам системы хоста Как андроид сравнивает ожидающие намерения GoogleAuthUtil.getToken возвращает недопустимый код аутентификации Ионные запросы возвращают 404 только на Android, в Chrome он отлично работает Android notifyItemRangeInserted отключить автопрокрутку Универсальный загрузчик изображений – удаление одного изображения из кеша не работает Есть ли хороший сайт для отслеживания вашего рейтинга на Android Market? Java.lang.RuntimeException с примером для входа в Facebook Android-приложение для аварийного восстановления после proguard RadioButton – как использовать пользовательский доступный? Присоединение к жизненному циклу фрагмента, например Application.ActivityLifecycleCallbacks Не удалось выполнить повторную установку из-за различных подписей приложений Продвинутое поведение провайдера Fused Location Как избежать специальных символов, например, в sqlite в android Android ActionbarSherlock SearchView

Создание / использование исполняемого макета XML в Android

В настоящее время я работаю над проектом, который требует, чтобы я использовал XML-документ для визуализации формы на устройстве Android. Форма должна быть отображена и отображена во время выполнения. Мне интересно, есть ли способ пометить форму XML, преобразовать ее с помощью XSLT в XML-формат Android, а затем отобразить его.

Solutions Collecting From Web of "Создание / использование исполняемого макета XML в Android"

К сожалению, вы не можете просто клонировать LayoutInflater или использовать другие подобные трюки, чтобы сделать это – инфляция макета полностью зависит от конструкторов вида, которые принимают аргумент AttributeSet, которые полностью зависят от метода Context.obtainStyledAttributes, который сам полностью зависит от С предварительно обработанным двоичным XML-файлом, чтобы иметь возможность эффективно разрешать атрибуты.

Альтернативный подход, который вы можете изучить, – использовать инструмент aapt (или, скорее, взломанную его версию) на вашем сервере, чтобы скомпилировать созданные вами макеты в соответствующие данные. К сожалению, в настоящее время у нас нет способа скомпоновать XmlPullParser из необработанного двоичного блоба (он должен получить этот blob из AssetManager), поэтому с этим подходом будет выполняться достаточная работа как на клиенте, так и на сервере. Я подозреваю, что можно придумать что-то довольно аккуратное, но это будет много работы.

Android содержит только встроенный способ «раздуть» формат XML, хранящийся в качестве ресурса макета в файле APK. Если вы хотите «раздуть» подобный (или другой) XML из других источников, вам придется реализовать это самостоятельно, возможно, клонируя некоторую логику из класса LayoutInflater .

Метод LayoutInflater.inflate будет принимать XmlPullParser в качестве аргумента, поэтому все, что вам нужно сделать, – это загрузить свой динамически созданный XML в PullParser и передать его в инфлятор.