Android 未解析的引用getResources()Kotlin
因此,我试图在代码中访问getResources(),但由于某些原因,它一直得到一个未解析的引用。我在另一个类中为我的阵列适配器执行此操作。是因为我没有主方法还是因为其他原因?我对android开发和kotlin有点陌生,所以任何帮助都将不胜感激Android 未解析的引用getResources()Kotlin,android,kotlin,android-arrayadapter,custom-arrayadapter,Android,Kotlin,Android Arrayadapter,Custom Arrayadapter,因此,我试图在代码中访问getResources(),但由于某些原因,它一直得到一个未解析的引用。我在另一个类中为我的阵列适配器执行此操作。是因为我没有主方法还是因为其他原因?我对android开发和kotlin有点陌生,所以任何帮助都将不胜感激 class ForecasAdapter(val forecast:forecast):RecyclerView.Adapter(){ 重写getItemCount():Int{ returnforecast.list.count()返回 } ove
class ForecasAdapter(val forecast:forecast):RecyclerView.Adapter(){
重写getItemCount():Int{
returnforecast.list.count()返回
}
override fun onCreateViewHolder(p0:ViewGroup,p1:Int):预测数据{
val layoutInflator=LayoutInflater.from(p0?.context)
val cellForRow=布局平坦。充气(R.layout.WEATURE_行,p0,false)
返回预报数据(cellForRow)
}
覆盖BindViewHolder(p0:ForecastData,p1:Int){
val drawableId:Int=getResources().getIdentifier(“my_drawable”,“drawable”,getPackageName())
val getWeather=forecast.list[p1]
val clouds=getWeather.weather[0]
val getDateTime=forecast.list[p1]
var getIcon=forecast.list[p1]
var icon=getIcon.weather[0]
p0.view.textView\u text\u clouds.text=clouds.main
p0.view.textView\u date\u time.text=getDateTime.dt\u txt
}
}
类预测数据(val视图:视图):RecyclerView.ViewHolder(视图){
}
在适配器中将上下文作为参数传递,然后像这样使用
class ForecastAdapter(val forecast: Forecast,val context:Context)
然后
在适配器中将上下文作为参数传递,然后像这样使用
class ForecastAdapter(val forecast: Forecast,val context:Context)
然后
您不需要通过构造函数传递它。
在onCreateViewHolder中,您可以从父.context获取它,而无需通过构造函数。
在onCreateViewHolder中,您可以从父.context中获取它,您可以使用ContextCompat
ContextCompat.getColor(this.applicationContext, android.R.color.transparent)
您可以使用ContextCompat
ContextCompat.getColor(this.applicationContext, android.R.color.transparent)
这里需要
context
以获得正确的引用,例如viewHolder.itemView.context.resources
p0.itemView.context.resources
在您的案例中[this.]getResources()
是当您扩展属于上下文的类(例如活动
)或具有内部引用(例如视图
)时存在的方法。RecyclerView.Adapter
不继承此方法,因此您需要对某个外部上下文
对象的引用。按照@sasikumar的建议执行,并要求在构造函数中显式引用,或者使用视图
对象作为方法参数提供,如上面的注释所示。您需要上下文
此处以获得正确的引用,如viewHolder.itemView.context.resources
p0.itemView.context.resources
在您的例子中,[this.]getResources()
是一个方法,当您扩展一个类时,该类是一个上下文
,例如活动
,或者在内部有一个引用,例如视图
。RecyclerView.Adapter
不继承此方法,因此您需要对某个外部上下文
对象的引用。要么按照@sasikumar的建议去做,要求在构造函数中有一个显式引用,要么使用视图
对象,就像上面的注释建议的那样作为方法参数提供给你。好的,那么我在调用类时会像这样传递它吗view.adapter=ForecastAdapter(天气、上下文)
当我像这样传递它时,它会说未解决reference@ZubairAmjadview.adapter=ForecastAdapter(天气,此)
当您在活动中执行此操作时。或者view.adapter=ForecastAdapter(weather,activity!!)
()如果您是从片段执行此操作的,当我执行此操作时,它会说它需要上下文,但我假设这将指向上下文?好的,然后在调用类时,我会像这样传递它view.adapter=ForecastAdapter(天气、上下文)
当我像这样传递它时,它会说未解决reference@ZubairAmjadview.adapter=ForecastAdapter(天气,此)
当您在活动中执行此操作时。或者view.adapter=ForecastAdapter(天气,活动!!)
()如果您是从片段执行此操作,当我执行此操作时,它会说它需要上下文,但我假设这会指向上下文?