web-dev-qa-db-ja.com

Androidのカスタム属性

編集可能なすべての要素に対して、Tagというカスタム属性を作成しようとしています。 attrs.xmlに以下を追加しました

<declare-styleable name="Spinner">
    <attr name="tag" format="string" />
</declare-styleable>

<declare-styleable name="EditText">
    <attr name="tag" format="string" />
</declare-styleable>

EditTextに対して「属性タグはすでに定義されています」というエラーが表示されます。異なる要素に同じ名前のカスタム属性を作成することはできませんか?

30
Arun

複数の場所でattrを使用する場合は、次のように<resources>要素内のルート要素に配置します。

<resources>

    <attr name="tag" format="string" />

    <declare-styleable name="Spinner">
        <attr name="tag" />
    </declare-styleable>

    <declare-styleable name="EditText">
        <attr name="tag" />
    </declare-styleable>

</resources>

これで、このxmlファイル内の任意の場所でタグ属性を使用できます。

お役に立てば幸いです。

70
ninjasense

カスタム属性に関する私の詳細な回答が役立つかどうかを確認してください: カスタム属性の定義

5
Rich Schuler