Как стать автором
Обновить
14
0

Пользователь

Отправить сообщение
Ну в этом методе все понятно, там цикл по аннотированным элементам. Из каждого элемента достаётся сама аннотация с параметрами
CustomAnnotation ca = e.getAnnotation(CustomAnnotation.class);

и создается новый класс
JavaFileObject f = processingEnv.getFiler().createSourceFile(clazz.getQualifiedName() + "Autogenerate");
, в который записываются строки класса. Вот этими строчками я вывела в виде комментария все данные, которыми мы можем оперировать
 pw.println("\n//" + e);
  pw.println("//" + ca);

е — это аннотированный элемент и ca — сама аннотация. Если вы запустите и сгенирируете, то все будет наглядно видно.
Это всё конечно хорошо. Но дело в том, что этот код я писала под определённую задачу. И, дело в том, что я заранее не знаю, какая у меня будет тема. Все они задаются на сервере, а мне приходят в виде джейсона, где вьюшка-атрибут-значение. И в рантайме я эту тему должна применить. Вот ещё главный нюанс. А, как известно, в рантайме сгенерировать xml я не могу… т.к. в apk файле они хранятся уже совершенно в другом виде. Так вот моё решение для тех, у кого темы — это динамические объекты, которые заранее не пропишешь в xml.
Тема применяется для всего активити(приложения) в целом, отдельно до каждой вьюшки вы достучаться не сможете.Вот. Конечно можно к каждой вьюшке прописать свой стиль и в каждом активити каждой вьюшке его применять… но это тоже самое, что и просто в каждом классе перебирать вьюшки и хардкодом подставлять разные атрибуты. Ну вы сами понимаете, что это не самое удачное решение. Совсем не в стиле ООП
Я не понимаю, что вы имеете ввиду под «просто в onCreate назначение ресурсов в соответствии с выбранной темой». Поэтому не могу оценить и ответить на ваш вопрос =)
Самое распространённое в этом плане требование заказчиков: «Как в айфоне, пожалуйста». И не поспоришь и не объяснишь =\

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность