Во-первых, вы знаете название ресурса. Вы даже помещаете это в свой Log
звонок. Таким образом, одним из вариантов будет использование getIdentifier()
на Resources
объекте (обычно получаемый путем вызова getResources()
на вашем Activity
или другом Context
).
Или, если у вас есть объект Field
, позвоните f.getInt(R.string.class)
.
В любом случае (getIdentifier()
или getInt()
) теперь у вас есть числовой идентификатор ресурса, после чего вы можете вызвать getString()
на вашем Activity
, чтобы получить фактическое значение String
.
Использование отражения - напрямую или через getIdentifier()
- будет медленным. Пожалуйста, избегайте подхода, который вы пробуете, где это возможно. Если вам абсолютно необходимо использовать рефлексию, обязательно кешируйте свои результаты, чтобы вам не приходилось повторять одни и те же поиски.