aggiungere a livello di codice id a R.id


89

Sto creando un EditTextoggetto che poi cerco di fare riferimento in uno unit test. Qual è il modo migliore per aggiungere un nuovo ida R.idper questo oggetto creato dinamicamente, in modo da poterlo successivamente fare riferimento tramite findViewById()lo unit test?


Risposte:


207

Puoi impostare gli ID che userai in seguito nella classe R.id usando un file di risorse xml e lasciare che Android SDK dia loro valori univoci durante la compilazione.

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>

Per usarlo nel codice:

myEditTextView.setId(R.id.my_edit_text_1);

1
posso chiamare il file anothername.xml?
ofir_aghai

2
Ci scusiamo per la risposta tardiva, ma sì, come con tutte le risorse Android, puoi nominare quel .xml comunque ti piace ...
Android nascosto

1

Puoi utilizzare setId per ogni vista e assegnare qualsiasi numero positivo, in base allo sviluppatore di Google:

Imposta l'identificatore per questa vista. L'identificatore non deve essere univoco nella gerarchia di questa vista. L'identificatore dovrebbe essere un numero positivo. Link

così puoi usare

EveryView.setId(int);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.