如何使Android自组件并从jar库中使用它?

时间:2011-05-05 13:47:09

标签: android xml android-layout android-widget xml-attribute

我正在尝试创建一个可以很容易地作为jar库添加到android项目中的android组件。

为此,我必须在“res / values / attr.xml”中创建新的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"

但它仍然不起作用)

我宁愿使用jar来促进它在项目中的集成!

有没有人遇到过这样的问题谁可以帮助我?

谢谢。

1 个答案:

答案 0 :(得分:3)

  

我正在尝试创建一个Android   可轻松添加的组件   android项目作为jar库。

如果您想要重用代码和资源,则无法使用jar文件执行此操作。您需要将图书馆转换为library project

  

然后我将这个项目导入为jar   库进入另一个项目。至   在中创建我的图形组件   新项目,我必须改变路径   下面:

如果你正在使用一个库项目,你仍然会引用自定义属性,就好像它包含在应用程序中一样(因为android会在编译应用程序时将所有资源合并在一起):

xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"