2011-08-15 15 views
5

私にカスタムIDを与えるためにアンドロイドを取得することは可能ですか?例えばのでAndroid:カスタムR.idを取得する可能性があります

私はすでにXMLで定義した場合:

R.id.some_layout 
R.drawable.some_drawable 

この

R.custom_id("a_custom_id") 

のような任意の関数がありますので、私は、あなたができる

R.id.a_custom_id 

答えて

16

新しいIDを動的に作成することはできません。 Rがそうすることができたとしても、R.id.a_custom_idを使ってアクセスすることはできません。 Javaは動的言語ではなく、実行時にフィールドを追加することはできません。


ただし、コンパイル時の解決策があります。あなたのres/values/ids.xmlの追加:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <item type="id" name="a_custom_id"/> 
</resources> 

そして、あなたはあなたのコードとXMLSで"@id/a_custom_id"R.id.a_custom_idを参照することができます。もちろん、あらかじめ定義されたid(実行時定義のidとは対照的に)です。

関連する問題