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

Возвращать идентификатор ресурса, если я знаю имя ресурса

Как я могу вернуть идентификатор ресурса, если я знаю имя ресурса?

Что-то вроде этого:

String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
4b9b3361

Ответ 1

В MonoDroid этот код переводится как-то вроде:

 var resourceId = Resources.GetIdentifier(mDrawableName.ToLower(), "drawable", PackageName);

Тем не менее, я лично не использую GetIdentifier, поскольку он не рекомендуется в Android - поэтому вместо этого я использую Reflection:

 var resourceId = (int)typeof(Resource.Drawable).GetField(mDrawable).GetValue(null);

хотя этот код обязательно должен содержать некоторую проверку ошибок try/catch, добавленную для произвольных строк!