Я хочу получить доступ к ресурсу типа String или Drawable по его имени, а не по его int id.
Какой метод я бы использовал для этого?
java
android
android-resources
Асуан
источник
источник
Ответы:
Это будет что-то вроде:
R.drawable.resourcename
Убедитесь, что у вас нет
Android.R
импортированного пространства имен, так как это может запутать Eclipse (если это то, что вы используете).Если это не сработает, вы всегда можете использовать
getResources
метод контекста ...Где
this.context
находится intialised какActivity
,Service
или любой другойContext
подкласс.Обновить:
Если это имя, которое вы хотите, у
Resources
класса (возвращаемогоgetResources()
) естьgetResourceName(int)
метод, аgetResourceTypeName(int)
?Обновление 2 :
У
Resources
класса есть этот метод:Который возвращает целое число указанного имени ресурса, типа & пакета.
источник
R.drawable.resourcename
это целое числоЕсли я правильно понял, это то, что вы хотите
Где «это» - это Деятельность, написанная только для пояснения.
Если вы хотите String в strings.xml или идентификатор элемента пользовательского интерфейса, замените «drawable»
Я предупреждаю вас, этот способ получения идентификаторов очень медленный, используйте его только там, где это необходимо.
Ссылка на официальную документацию: Resources.getIdentifier (String name, String defType, String defPackage)
источник
источник
Простой способ получить идентификатор ресурса из строки. Здесь resourceName - это имя ресурса ImageView в папке для рисования, которое также включено в XML-файл.
источник
•
Kotlin Version
черезExtension Function
Чтобы найти идентификатор ресурса по его имени В Kotlin добавьте приведенный ниже фрагмент кода в файл Kotlin:
ExtensionFunctions.kt
•
Usage
Теперь все идентификаторы ресурсов доступны везде, где у вас есть контекстная ссылка, используя
resIdByName
метод:источник
Я бы предложил вам использовать мой метод для получения идентификатора ресурса. Это гораздо эффективнее, чем использование метода getIdentidier (), который работает медленно.
Вот код:
источник
источник
Я нашел этот класс очень полезным для работы с ресурсами. У него есть несколько определенных методов для работы с измерениями, цветами, рисованными объектами и строками, как этот:
источник
в дополнение к @lonkly решение
метод:
источник
В Котлине у меня нормально работает следующее:
Если ресурс находится в папке mipmap, вы можете использовать параметр «mipmap» вместо «drawable».
источник