2011-08-15 13 views

Odpowiedz

16

Nie można dynamicznie tworzyć nowych identyfikatorów. Nawet jeśli byłby to w stanie wykonać R, nie byłbyś w stanie uzyskać do niego dostępu za pomocą R.id.a_custom_id. Java nie jest językiem dynamicznym i nie może dodawać pól w środowisku wykonawczym.


Istnieje jednak rozwiązanie kompilacyjne. W swojej res/values/ids.xml dodają:

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

a następnie można odwołać R.id.a_custom_id w kodzie oraz plików XML w "@id/a_custom_id". Oczywiście jest to nadal predefiniowany id (w przeciwieństwie do id zdefiniowanego w środowisku wykonawczym).

Powiązane problemy