Найти вид по имени - PullRequest
       14

Найти вид по имени

24 голосов
/ 26 июля 2011

Можно ли найти представление по его имени, а не по его идентификатору.

findViewById(R.id.someView);

но я бы хотел сделать что-то вроде этого:

findViewByName("someView");

Ответы [ 2 ]

59 голосов
/ 26 июля 2011

вам нужно искать представления по идентификатору при работе с xml, но вы можете искать идентификатор, используя getIdentifier (String name, ...) , что полезно, например, если у вас есть нумерация макетов , Просто знайте, что такой поиск относительно дорогой.

для завершения ответа

int id = getResources().getIdentifier(name, "id", context.getPackageName());
View view = findViewById(id);
3 голосов
/ 25 июня 2015

Да, мы также можем найти любые статические ресурсы по имени.

 int id = getResources().getIdentifier(name, "id", context.getPackageName());
View view;
if(id != 0) {
  view = findViewById(id);
}

getResources (). Идентификатор будет возвращать 0 всегда, если ресурс не найден или имя не совпадает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...