Не удалось запустить активность ComponentInfo: android.content.res.Resources $ NotFoundException [duplicate]

Альтернативным решением является использование marker - инструмента, который я создал недавно, который позволяет вам «закладок» шаблонов команд и легко помещать курсор в держатели команд:

commandline marker [/g1]

Я обнаружил, что большую часть времени я использую функции оболочки, поэтому мне не нужно писать часто используемые команды снова и снова в командной строке. Проблема использования функций для этого варианта использования заключается в добавлении новых терминов в словарь моей команды и необходимости запоминать, какие параметры функций относятся к реальной команде. Цель маркера - устранить эту психическую нагрузку.

5
задан Squonk 18 December 2012 в 00:07
поделиться

2 ответа

Чтобы построить идентификатор ресурса из строковых компонентов, вы должны передать отдельные компоненты в getIdentifier(), а не только полный идентификатор в качестве одного параметра:

//Get the ID for R.layout.widget_blue
int resID = context.getResources().getIdentifier("widget_blue", "layout", context.getPackageName());

Затем просто измените первый имя параметра, чтобы получить другой ресурс компоновки.

16
ответ дан Devunwired 20 August 2018 в 22:19
поделиться

Почему вы используете getIdentifier для этого? Так как вы все равно включаете в себя жестко закодированную строку, почему бы не использовать только идентификатор ресурса, как вы это делали во втором примере. Это намного эффективнее, как указано в документации по методу getIdentifier ():

Примечание: использование этой функции не рекомендуется. Гораздо эффективнее извлекать ресурсы по идентификатору, чем по имени.

1
ответ дан qzikl 20 August 2018 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: