Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/30: Рейтинг темы: голосов - 30, средняя оценка - 4.57
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 88

Как получить id ресурса по названию?

07.05.2013, 17:45. Показов 6163. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как можно из строкового значения, где впринципе записана константа(R.drawable.123), перевести в значение int и чтобы его программа поняла.
Делаю так:

String i = "R.drawable.123";
imageView.setImageResource(Integer.parse Int(i)); // здесь присваиваю картинке значение, которое должно поидее браться из строкового параметра i

Не работает.
Буду благодарен,если подскажете что-то дельное. Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2013, 17:45
Ответы с готовыми решениями:

Как получить hWnd ресурса?
как получить hWnd ресурса? Есть у меня на форме ресурса TreeView но для того чтобы туда добавить что то...макрос TreeView_InsertItem...

Как получить скриншот стороннего ресурса?
привет.Как можно осуществить задумку?На выходе должно быть изображение. Добавлено через 5 часов 56 минут нашел такое,но у меня не...

Как получить индекс listBox по названию
Добрый день уважаемые программисты! Вот увидел ваш ваш форум в поисках соей задачи,то что мне надо я не нашел,решил написать сюда. ...

14
 Аватар для dr_yand
157 / 138 / 15
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
07.05.2013, 17:51
Можете подробней рассказать, для какой цели вы хотите сделать это?
0
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 88
07.05.2013, 17:58  [ТС]
Могу. Вообще все сложнее, но вопросы возникли только здесь. У меня парсится xml файл(стринговое значение как раз на выходе парсера), и в этом xml файле лежит инфа о нужной иконке(константа R.drawable.123), которую нужно применить в нужном месте при определенном условии. Соответственно нужно запихать полученное стринговое значение как константу картинки(int). Если есть идеи как по другому это сделать, с удовольствием готов рассмотреть их.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 18:03
используйте метод getIdentifier().
1
0x5B4C322291BD52AE
 Аватар для c4sp3r
96 / 96 / 0
Регистрация: 04.03.2013
Сообщений: 295
07.05.2013, 19:47
Termit___,

а чем такой вариант не устраивает:
Java
1
final int[] iconsIDs = { R.drawable.icon1, R.drawable.icon2 ... };
Правда если ресурсов много такой вариант не очень удобен.

V0v1k,

Note: use of this function is discouraged. It is much more efficient to retrieve resources by identifier than by name.

Я недавно сам испытал тормоза из-за этого метода пришлось от него все таки отказаться в пользу варианта что привел выше другой альтернативы не нашел пришлось даже генератор написать чтоб в ручную не вбивать. Мне надо было инициализировать большое кол-во картинок вариант с использованием assets мне не подошел.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 20:14
иногда это единственный вариант, например если нужно получить ресурсы с другого приложения.
0
0x5B4C322291BD52AE
 Аватар для c4sp3r
96 / 96 / 0
Регистрация: 04.03.2013
Сообщений: 295
07.05.2013, 20:29
есть еще один способ но мне он тоже не понравился http://www.anddev.org/viewtopic.php?t=575

Цитата Сообщение от V0v1k Посмотреть сообщение
например если нужно получить ресурсы с другого приложения.
Ну да согласен но проще тогда уже выдрать ресурсы из этого другого приложения если их не много.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 20:35
в смысле выдрать?

Добавлено через 3 минуты
c4sp3r, ни первый, ни второй пример не поможет если, например, эта xml-ка приходит с сервера...
0
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 88
07.05.2013, 20:44  [ТС]
XML-ка приходитн не с сервера. Она выбирается в предыдущем активити в зависимости от условия(по выбору пользователя). Буду курить маны про getIdentifier().
Спасибо Вовику. Попозже отпишусь получилось или нет.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 20:48
Цитата Сообщение от Termit___ Посмотреть сообщение
XML-ка приходитн не с сервера. Она выбирается в предыдущем активити в зависимости от условия(по выбору пользователя).
а почему бы в xml-ку не писать сразу id? и зачем вообще вы используете xml? все что нужно можно передать в интенте.
0
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 88
07.05.2013, 22:42  [ТС]
Я в xml-ке и пишу строку равную id (R.drawable.123). Есть большой список профайлов, в котором хранится инфа по конкретному профайлу(имя,прозвище....иконка, и тд.) У каждого профайла есть свой xml файл, который парсится в зависимости от того, кого выбрали(в предыдущем активити). Можно конечно это все через intent передать, но профайлов немало, и код получится километровый, если передавать по каждому профайлу всю кучу инфы.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 22:46
так в чем проблема писать в xml не строку "R.drawable.123", а значение константы R.drawable.123?
0
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 88
08.05.2013, 09:47  [ТС]
0_о. Ошибка построения xml тогда.

Добавлено через 26 минут
Да, метод getIdentifier помог. Очередной раз спасибо Вовику. Уже не первый раз выручает.
Давайте теперь чуть усложним задачу:
Можно ли тоже самое провернуть, но чтоб в одном текстовом поле было не одно значение картинки,а последовательность.( icon=pic1,pic2,pic3...) и чтобы эта строка парсилась и иконки строились в том порядке, в котором они стоят в строке xml файла. На сколько я понимаю тут нужен цикл. Но опять же не совсем понимаю как правильно разобрать строку, чтоб запятую понял как разделитель.
Конечно есть вариант проще, просто каждую иконку одной строкой, но их довольно много, и получится много строк. Последовательностью было бы красивее на мой взгляд.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.05.2013, 12:20
Java
1
str.split(",");
0
08.05.2013, 19:34

Не по теме:

Цитата Сообщение от V0v1k Посмотреть сообщение
в смысле выдрать?
Цитата Сообщение от V0v1k Посмотреть сообщение
ни первый, ни второй пример не поможет если, например, эта xml-ка приходит с сервера...
похоже мы друг друга не поняли да и я не совсем понял что нужно ТС :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2013, 19:34
Помогаю со студенческими работами здесь

Как получить ресурс из String с путем ресурса?
Как получить ресурс из String с путем ресурса? String source = "R.string.text"; String text = getString(source); Вот этот код...

Как получить id набора кодировки (charset) по её названию?
Здравствуйте. Читаю файл. Использую StreamWriter для записи некоторых его частей. Наблюдаю следующее явление, если кодировка указанная при...

Как получить тип по его текстовому названию
Доброго времени суток, Столкнулся со следующей проблемой: Мне необходимо получить список всех полей в классе сделать это было бы не...

Как получить значение текстового ресурса, не зная его имени?
Добрый день! Подскажи как можно получить значение текстового ресурса, имя которого на момент написания не знаешь. Есть функция, на вход...

Как от абстрактной модели получить роут на просмотр одноименного ресурса?
Как можно упростить (отDRYить) следующий код: def get_show_model_path(model) case model when Issue issue_path(model) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru