Android и получение представления с идентификатором в виде строки - PullRequest
24 голосов
/ 19 января 2011

В коде Java проекта Android, если вам нужна ссылка на ресурс представления, вы можете сделать что-то вроде:

View addButton = findViewById(R.id.button_0);

В приведенном выше R.id.button_0 не является строкой. Можно ли динамически ссылаться на ресурс с помощью строки, например "R.id.button_0"?

Я хотел бы сослаться на кнопку как "R.id.button_%i", где %i заменяется некоторым допустимым индексом.

Ответы [ 2 ]

54 голосов
/ 19 января 2011
int resID = getResources().getIdentifier("button_%i",
    "id", getPackageName());
View addButton = findViewById(resID);

, где %i заменяется некоторым допустимым индексом.

Метод getResources() относится к классу Context, поэтому вы можете использовать его непосредственно из Activity. Если вы не в деятельности, используйте контекст для доступа: (myCtxt.getResources()).

4 голосов
/ 19 января 2011

Вы можете попробовать поместить все нужные вам идентификаторы в массив, а затем использовать этот массив для динамической ссылки на ваши ресурсы.

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