Как получить отрисовку из атрибута ссылки во фрагменте - PullRequest
0 голосов
/ 04 марта 2020

Может ли кто-нибудь подтвердить, как правильно извлечь извлекаемый объект из справочника атрибутов (из фрагмента)?

activity.context в val myDrawable = ContextCompat.getDrawable(activity.context, imageResId) ?: throw IllegalArgumentException("Cannot load drawable $imageResId") возвращает эту ошибку:

Неразрешенный ссылка: context

Я не уверен, какой контекст следует использовать здесь.

Вот некоторый соответствующий код:

val typedValue = TypedValue()
activity!!.theme.resolveAttribute(R.attr.imgSearch, typedValue, true)
val imageResId = typedValue.resourceId
val myDrawable = ContextCompat.getDrawable(activity.context, imageResId) ?: throw IllegalArgumentException("Cannot load drawable $imageResId")

Ответы [ 3 ]

1 голос
/ 04 марта 2020

Попробуйте следующее:

activity.resources.getDrawable(imageResId)

Обновление: getDrawbale () исключен из API 22, в этом случае вы можете попробовать следующее:

ResourcesCompat.getDrawable(activity!!.resources, imageResId, null)
0 голосов
/ 04 марта 2020

Причина Unresolved reference: context заключается в том, что такой метод #getContext не присутствует с активностью.

Поскольку в ContextCompat.getDrawable(activity.context, imageResId) activity.context попытается вызвать activity#getContext, так как метод отсутствует, это исключение - throw.

Попробуйте обновить этот оператор до ContextCompat.getDrawable(activity, imageResId), поскольку действие само является экземпляром контекста.

0 голосов
/ 04 марта 2020

Если вы находитесь в упражнении, вы можете использовать:

ContextCompat.getDrawable(this, imageResId)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...