Android, я могу написать файл макета XML программно и загрузить его с помощью функции setContentView (R.layout.test_1)?

1

Я хочу написать программно файл макета xml на SD-карту или другое хранилище, а при загрузке приложения он загрузит файл как макет с помощью функции setContentView или любым другим способом. Является ли это возможным?

Теги:
layout
storage

3 ответа

4

Нет, это невозможно, так как файлы макета фактически скомпилированы XML файлами, означает, что вы не можете изменять, добавлять или удалять их во время выполнения. Надеюсь это поможет.

2

Решение делает пользовательский XML-декодер, который читает ваш XML из файла, а затем создает программно нужные вам виды, а затем setContentView (вид). Декодер не является тривиальным, если вы используете много параметров в XML.

  • 0
    Я согласен с таким подходом. И если вам не нужно загружать сложный макет, попробуйте упростить схему XML, чтобы вам не приходилось писать сложный декодер.
  • 0
    Привет, если я получу XML-строку, декодированную из WebSrevice, может ли это помочь мне пропустить решение XML-декодера? Что означает «создавать программно нужные вам представления»? Вы имеете в виду, что мне нужно разобрать xml и построить один за другим элементы и свойства? или есть способ создать представление программно и загрузить xml в него с помощью простой команды (например, view.load (xml_doc или xml_string))? Спасибо.
Показать ещё 1 комментарий
0

Вы можете попытаться использовать метод inflate (XmlPullParser parser....) LayoutInflater. Но ресурсы будут загружаться из ресурсов контекста.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню