Подтвердить что ты не робот

Android и получение представления с литой идентификатором в виде строки

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

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

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

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

4b9b3361

Ответ 1

int resID = getResources().getIdentifier("button_%i",
    "id", getPackageName());
View addButton = findViewById(resID);

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

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

Ответ 2

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