программно добавить 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 как хотите ...
Hidden Android

1

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

Устанавливает идентификатор для этого представления. Идентификатор не обязательно должен быть уникальным в иерархии этого представления. Идентификатор должен быть положительным числом. Ссылка на сайт

так что вы можете использовать

EveryView.setId(int);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.