Intereting Posts
ActionBarsherlock android.R.id.home <API 11 Получить адрес электронной почты и номер телефона, на котором используется метка типа android OnCreateOptionsMenu вызывается перед onCreate android Текст Android для речи очень медленно инициализируется Не удается выполнить запросFocus Spinner Фоновая привязка: исправлено не работает на android / mobile Ошибка при добавлении библиотеки фактурирования в приложении Ошибка Google Play при совершении покупки при внедрении плагина Soomla Unity3d Совместим ли arm64-v8a с armeabi-v7a? SwipeRefreshLayout за ActionBar Внешний HTML-ресурс, не связанный с React Native в сборке для использования Webview Как я могу автоматически сортировать список, чтобы он не прокручивал Исключение биллинга для Android о концевом символе Android – Блокировка от вторжения не получается должным образом, приложение должно работать в режиме ожидания Проблемы с камерой и фотографией для Android с Samsung Galaxy S3, S4, S5

Создание / использование исполняемого макета 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 и передать его в инфлятор.