2010-07-09 2 views
81

Sto creando un oggetto EditText che poi proverò a fare riferimento in un test di unità. Qual è il modo migliore per aggiungere un nuovo id a R.id per questo oggetto creato dinamicamente, in modo che possa successivamente farvi riferimento tramite findViewById() nel test dell'unità?a livello di codice aggiungi id a R.id

+0

possibile duplicato di [Android: View.setID (int id) di programmazione - come evitare Conflitti di ID?] (Http://stackoverflow.com/questions/1714297/android-view-setidint-id-programmatically-how-to-avoid-id-conflicts) – rds

risposta

188

È possibile impostare gli ID che verranno utilizzati in seguito nella classe R.id utilizzando un file di risorse xml e lasciare che Android SDK fornisca valori univoci durante la compilazione.

res/valori/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> 

di utilizzarlo in codice:

myEditTextView.setId(R.id.my_edit_text_1); 
+1

posso chiamare il file anothername.xml? –

+2

Ci scusiamo per la risposta in ritardo, ma sì, come con tutte le risorse Android, puoi nominare quel .xml comunque ti piace ... –