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

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

07.05.2013, 17:45. Показов 6123. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru