在Android中创建具有属性的自定义元素时,我需要将应用程序的名称空间放在布局中。
例如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:whatever="http://schemas.android.com/apk/res/org.example.mypackage"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<org.example.mypackage.MyCustomView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
whatever:my_custom_attribute="Hello, world!" />
</LinearLayout>
这是否还要求我在Eclipse中的项目结构与在Manifest中定义的Android包的名称相同 - 根据示例? 这也有用吗:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:whatever="http://schemas.android.com/apk/res/org.mycompany.myproduct"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<org.example.mypackage.MyCustomView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
whatever:my_custom_attribute="Hello, world!" />
</LinearLayout>
答案 0 :(得分:1)
应该反映的应用程序的包名称。因此,正确使用它是正确的。
例如:
在xmlns:whatever="http://schemas.android.com/apk/res/org.mycompany.myproduct
中,最后一部分org.mycompany.myproduct
应与包名称相同。您可以将xmlns:whatever
更改为xmlns:theblitz
之类的内容,但请确保使用theblitz
作为xml中属性的前缀。
有关详情,请参阅this