програмно додати id до R.id


89

Я створюю EditTextоб'єкт, на який потім намагаюся посилатися в модульному тесті. Що це найкращий спосіб , щоб додати новий , idщоб R.idдля цього динамічно створеного об'єкта, так що я можу потім послатися на нього з допомогою findViewById()в тестовому модулі?


Відповіді:


208

Ви можете встановити ідентифікатори, які будете використовувати пізніше у класі R.id, використовуючи файл ресурсів xml, і дозволяти Android SDK надавати їм унікальні значення під час компіляції.

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>

Щоб використовувати його в коді:

myEditTextView.setId(R.id.my_edit_text_1);

1
чи можу я назвати файл anothername.xml?
ofir_aghai

2
Вибачте за пізню відповідь, але так, як і у всіх ресурсах Android, ви можете назвати цей .xml як завгодно ...
Прихований Android

1

Ви можете використовувати setId для кожного представлення даних і призначити будь-яке додатне число на основі розробника Google:

Встановлює ідентифікатор для цього подання. Ідентифікатор не повинен бути унікальним в ієрархії цього подання. Ідентифікатором має бути додатне число. Посилання

щоб ви могли використовувати

EveryView.setId(int);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.