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での私のプロジェクトの構造がマニフェストに定義したようなものの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>
をお読みください。最初の例では、xmlnsのdeclerationとcustomer要素の宣言の両方で "org.mycompany.myproduct"を使用しました。 2つ目は、カスタム要素のパッケージは「org.mycompany.myproduct」ではなく「org.example.mypackage」です。 – theblitz
ビュータイプ 'org.example.mypackage.MyCustomView'はクラスファイルと同じ方法で定義されています – waqaslam
したがって、xmlnsの値と一致する必要はありません - そうですか? – theblitz