如何从片段中的属性引用中检索可绘制对象
How to retrieve drawable from attributes reference in a Fragment
有人可以确认从属性引用(从片段)检索可绘制对象的正确方法是什么吗?
activity.context
在 val myDrawable = ContextCompat.getDrawable(activity.context, imageResId) ?: throw IllegalArgumentException("Cannot load drawable $imageResId")
returns 这个错误:
Unresolved reference: 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")
尝试以下操作:
activity.resources.getDrawable(imageResId)
更新:getDrawable() 已从 api 22 开始弃用,在这种情况下,您可以尝试以下操作:
ResourcesCompat.getDrawable(activity!!.resources, imageResId, null)
Unresolved reference: context
的原因是 activity 没有这样的 #getContext
方法。
由于在 ContextCompat.getDrawable(activity.context, imageResId)
中 activity.context
会尝试调用 activity#getContext
,因为该方法不存在,所以抛出此异常。
尝试将此语句更新为 ContextCompat.getDrawable(activity, imageResId)
,因为 activity 本身就是上下文的一个实例。
ResourcesCompat.getDrawable(requireActivity().resources, R.drawable.ic_baseline_arrow_back_24, null)
有人可以确认从属性引用(从片段)检索可绘制对象的正确方法是什么吗?
activity.context
在 val myDrawable = ContextCompat.getDrawable(activity.context, imageResId) ?: throw IllegalArgumentException("Cannot load drawable $imageResId")
returns 这个错误:
Unresolved reference: 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")
尝试以下操作:
activity.resources.getDrawable(imageResId)
更新:getDrawable() 已从 api 22 开始弃用,在这种情况下,您可以尝试以下操作:
ResourcesCompat.getDrawable(activity!!.resources, imageResId, null)
Unresolved reference: context
的原因是 activity 没有这样的 #getContext
方法。
由于在 ContextCompat.getDrawable(activity.context, imageResId)
中 activity.context
会尝试调用 activity#getContext
,因为该方法不存在,所以抛出此异常。
尝试将此语句更新为 ContextCompat.getDrawable(activity, imageResId)
,因为 activity 本身就是上下文的一个实例。
ResourcesCompat.getDrawable(requireActivity().resources, R.drawable.ic_baseline_arrow_back_24, null)