ajouter par programme id à R.id


89

Je crée un EditTextobjet que j'essaye ensuite de référencer dans un test unitaire. Quelle est la meilleure façon d'ajouter un nouveau idà R.idpour cet objet créé dynamiquement, afin que je puisse le référencer ultérieurement via findViewById()le test unitaire?


Réponses:


207

Vous pouvez définir les ID que vous utiliserez plus tard dans la classe R.id à l'aide d'un fichier de ressources xml et laisser le SDK Android leur attribuer des valeurs uniques lors de la compilation.

res / values ​​/ ids.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <item name="my_edit_text_1" type="id"/>
    <item name="my_button_1" type="id"/>
    <item name="my_time_picker_1" type="id"/>

</resources>

Pour l'utiliser dans le code:

myEditTextView.setId(R.id.my_edit_text_1);

1
puis-je appeler le fichier anothername.xml?
ofir_aghai

2
Désolé pour la réponse tardive, mais oui, comme pour toutes les ressources Android, vous pouvez nommer ce fichier .xml comme vous le souhaitez ...
Android caché

1

Vous pouvez utiliser setId pour chaque vue et attribuer un nombre positif, en fonction du développeur Google:

Définit l'identifiant de cette vue. L'identificateur n'a pas besoin d'être unique dans la hiérarchie de cette vue. L'identifiant doit être un nombre positif. Lien

afin que vous puissiez utiliser

EveryView.setId(int);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.