Проверить, есть ли View с заданным ID
Есть набор элементов типа ViewGroup и есть код, обрабатывающий эти элементы. Нужно, сделать так, что если внутри элемента есть определённый вложенный элемент, то что-то с ним сделать. Например, если внутри есть TextView с id=title, то установить ему какой-то заголовок.
for (item in items) {
val nested: TextView? = item.findViewById(R.id.title)
if (nested !== null) {
nested.text = "Title"
}
}
Однако, если ни в одном из этих элементов не будет нужного id, то тогда и константа R.id.title не сгенерируется.
Каким другим образом можно посмотреть, есть ли такой id?
Ответы (1 шт):
Автор решения: Barmaley
→ Ссылка
По сути идентификаторы хранятся в генерируемом класса R.java, который выглядит примерно так:
public final class R {
//blah-blah
public static final class id {
public static final int title=0x7f070000;
//blah-blah
}
}
Надо попробовать наличие поля R.id.title через рефлексию (сорри, что на Java):
Class<?> rIdClass = R.id.class;
Field titleField = rIdClass.getField("title");
if(titleField!=null) {
//bingo есть контакт
}