Android и получение представления с литой идентификатором в виде строки
В Java-коде проекта Android, если вы хотите ссылку для ресурса представления, вы можете сделать что-то вроде:
View addButton = findViewById(R.id.button_0);
В приведенном выше R.id.button_0 не является String. Можно ли динамически ссылаться на ресурс с помощью строки, например "R.id.button_0
"?
Я хотел бы ссылаться на кнопку на "R.id.button_%i
", где %i
заменяется некоторым допустимым индексом.
Ответы
Ответ 1
int resID = getResources().getIdentifier("button_%i",
"id", getPackageName());
View addButton = findViewById(resID);
где %i
заменяется некоторым допустимым индексом.
Метод getResources()
относится к классу Context
, поэтому вы можете использовать его непосредственно из Activity
. Если вы не находитесь в действии, используйте контекст для доступа: (myCtxt.getResources()
).
Ответ 2
Вы можете попробовать разместить все идентификаторы, которые хотите в массиве, а затем использовать этот массив для динамического обращения к вашим ресурсам.