Клонирование активности андроида динамически? - PullRequest
0 голосов
/ 24 сентября 2018

Я создаю приложение с довольно динамичным пользовательским интерфейсом, который позволяет пользователям динамически добавлять / изменять позиции своих видов и макетов.Если пользователь решит, что текущий дизайн пользовательского интерфейса ему подходит, он сможет сохранить все виды (buttons/labels/switches/etc.) действия в список "сохраненных" действий.Есть ли возможный способ клонировать действие или хотя бы сохранить позиции всех видов и макетов?Я видел, что представления имеют функции .getX() и .getY(), но, насколько я понял, это только в макете.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Обновление

Я нашел решение, которое работает.Я создал простую базу данных Sqlite, в которой динамически сохранял XY местоположения / имена / текст / id всех моих представлений в таблице, а затем отображал их в списке «сохраненных» конфигураций.Сложная часть - это динамическое создание заново всех представлений после получения БД.Если есть запрос, я также могу поставить код.

0 голосов
/ 24 сентября 2018

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

Если вы публикуете некоторый код (часть кода, которую должны выполнять обе ваши действия)), Я мог бы обновить свой ответ, чтобы показать вам, как это будет выглядеть в вашем случае.

Далее ,

Шаг № 1: Откройте старый проект в Android Studio.

Шаг № 2: Откройте новый проект в Android Studio, выбрав его для открытия в новом окне (а не в окне, которое вы получили в шаге № 1).

Шаг № 3:Перетащите файлы классов Java из старого проекта в новый проект.

Шаг № 4: Перетащите ресурсы, используемые этими классами Java из старого проекта, в новый проект.

Шаг № 5. Найдите элементы из манифеста старого проекта и скопируйте их в то же базовое место в манифесте нового проекта.

...