Как создать собственные компоненты Android и использовать их из библиотеки jar?
Я пытаюсь создать компонент Android, который можно легко добавить в проекты андроида в виде библиотеки jar.
Для этого мне пришлось создавать новые атрибуты xml в "res/values /attr.xml", которые я добавляю к своему графическому элементу xml, используя путь:
xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"
Затем я импортирую этот проект как библиотеку jar в другой проект.
Чтобы создать мои графические компоненты в новом проекте, я должен изменить путь ниже:
xmlns:app="http://schemas.android.com/apk/res/com.mylibrary"
Но путь неправильный: пользовательские атрибуты не найдены.
Мне удалось интегрировать R файл в jar библиотеки, и я мог получить к нему доступ из моего xml, чтобы объявить пользовательский компонент следующим образом:
<PreferenceScreen
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res/com.myLibraryPackage">
<com.myLibraryPackage.mySelfComponent
android:title="Name"
android:key="name"
app:hintText="Input your name"
android:dialogTitle="Your name "
app:validator="com.myLibraryPackage.myValidatorClass" />
Странно, что если я поместил свой файл attr.xml в ресурсы моего проекта, он работает, а это значит, что он находит com.myLibraryPackage.mySelfComponent. В этом случае, почему он не может найти также com.myLibraryPackage?
(Я также попытался заменить
xmlns:app="http://schemas.android.com/apk/res/com.myLibraryPackage"
по
xmlns:app="http://schemas.android.com/apk/res/com.myApplicationPackage"
но он все равно не работает)
Я бы предпочел использовать банку, чтобы облегчить ее интеграцию в проект!
Кто-нибудь сталкивался с такой проблемой, которая могла мне помочь?
Спасибо.
Ответы
Ответ 1
Я пытаюсь создать андроид компонент, который можно легко добавить к андроидных проектов в качестве библиотеки jar.
Если вы хотите использовать код повторного использования и ресурсы, это будет невозможно сделать с помощью файла jar. Вам нужно будет преобразовать вашу библиотеку в проект .
Затем я импортирую этот проект как банку библиотеки в другой проект. к создайте графические компоненты в новый проект, я должен изменить путь ниже:
Если вы используете проект библиотеки, вы все равно будете ссылаться на пользовательский атрибут, как если бы он содержался в приложении (поскольку андроид будет объединять все ресурсы вместе при компиляции приложения):
xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"