Вопрос может показаться непонятным только из-за названия, поэтому позвольте мне уточнить, что я имею в виду. Из того немногого, что я пробовал в HTML и JavaScript, вы можете добавить строки HTML в файл HTML с помощью функции Javascript в файле script.js, и это добавит те строки HTML, которые вы написали в функцию, в файл HTML. при выполнении, и это будет работать так, как если бы вы написали это в файле HTML для начала. Это было мое понимание того, как это работало, по крайней мере, если я ошибаюсь в своей оценке, не стесняйтесь поправлять меня в этом вопросе.
В любом случае, мне интересно, можем ли мы сделать нечто подобное в Android Studio, где мы можем использовать функцию Kotlin для добавления строки/атрибута/команды XML, например «app:srcCompat="@drawable/whatever"' в файл XML.
Конечно, вопрос исходит не из простого чувства удивления. В настоящее время у меня есть приложение с фрагментом, которое должно получить несколько футбольных команд из базы данных Room и отобразить их в CardViews с помощью RecyclerView. В этих карточках должно отображаться название команды и ее логотип. У меня нет логотипов в виде файлов изображений в самой базе данных Room, однако есть столбец, в котором хранятся имена файлов для рисования, в которых хранятся логотипы команд. (Например: логотип команды А хранится в чертежах как «teama.png», а «команда» хранится в столбце.)
В классе адаптера RecyclerView я хочу использовать функцию bind(), чтобы поместить имя и логотип на карточки. Что я ожидаю сделать (связанное с моим вопросом в целом), так это использовать функцию, которая может принимать строковый параметр ("app:srcCompat="@drawable/teama"") и помещает его в XML-файл элемента моей команды. Это возможно? Я также открыт для других решений и могу опубликовать код, если потребуется.
Спасибо за ваш ответ заранее.
До сих пор эта технология недоступна, а если и доступна, то не так известна и не используется.
Есть ли способ добавить XML-код в XML-файл из кода Kotlin?
Да, но не в контексте того, о чем вы спрашиваете.
Что я ожидаю сделать (связанное с моим вопросом в целом), так это использовать функцию, которая может принимать строковый параметр ("app:srcCompat="@drawable/teama"") и помещает его в XML-файл элемента моей команды. Это возможно?
Нет. Вы не можете изменить содержимое XML-файла ресурсов во время выполнения.
Из того немногого, что я пробовал в HTML и JavaScript, вы можете добавить строки HTML в файл HTML с помощью функции Javascript в файле script.js, и это добавит те строки HTML, которые вы написали в функцию, в файл HTML. при выполнении, и это будет работать так, как если бы вы написали это в файле HTML для начала.
JavaScript, запущенный в браузере, не изменяет файл HTML на сервере. Он изменяет DOM: проанализированное представление HTML, которое используется браузером для отображения пользовательского интерфейса на экране.
Точно так же в Android вам нужно будет обновить объекты View, созданные в результате анализа этого XML-файла ресурсов, чтобы отразить желаемое имя и логотип. Этот подход описан в книгах и курсах по разработке приложений для Android. FWIW, вот моя бесплатная книга на эту тему.
Я вижу, тогда я неправильно строил HTML в своей голове. Большое спасибо за подробный ответ, и я проверю книгу, как только закончу свой текущий проект!
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.