Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ViewHolder:如何在Groupie RecyclerView库的bind()函数中获取上下文?_Android_Kotlin_Android Recyclerview_Android Viewholder - Fatal编程技术网

Android ViewHolder:如何在Groupie RecyclerView库的bind()函数中获取上下文?

Android ViewHolder:如何在Groupie RecyclerView库的bind()函数中获取上下文?,android,kotlin,android-recyclerview,android-viewholder,Android,Kotlin,Android Recyclerview,Android Viewholder,我正在使用流行的Groupie库显示Firebase数据库中的用户列表,以生成Recycler视图。在ViewHolder类的bind()中[onBindViewHolder()不使用Groupie],我试图从从从用户的配置文件图像创建的调色板中获取主色,并将该颜色设置为Imageview的阴影颜色 但是,要使用调色板,我需要在 palete.getDominantColor(ContextCompat.getColor(context,R.color.defaultColor)) 问题是,如何

我正在使用流行的Groupie库显示Firebase数据库中的用户列表,以生成Recycler视图。在ViewHolder类的bind()中[onBindViewHolder()不使用Groupie],我试图从从从用户的配置文件图像创建的调色板中获取主色,并将该颜色设置为Imageview的阴影颜色

但是,要使用调色板,我需要在

palete.getDominantColor(ContextCompat.getColor(context,R.color.defaultColor))

问题是,如何在bind()函数中获取此上下文。如果我尝试在函数中传递上下文,它将丢失覆盖&我得到错误“bind”不会覆盖任何内容

这是我的代码,可以更好地理解这个问题

class FirebaseSearchActivity:AppCompatActivity(){
//获取Firebase数据库引用
private val dbRef=FirebaseDatabase.getInstance().getReference(“/users”)
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u firebase\u search)
val searchToolbar:Toolbar=findviewbyd(R.id.search\u Toolbar)
设置支持操作栏(搜索工具栏)
supportActionBar?.setDisplayShowTitleEnabled(假)
getUserResults()
}
私人娱乐getUserResults(){
dbRef.addListenerForSingleValueEvent(对象:ValueEventListener{
覆盖数据更改(p0:DataSnapshot){
//设置群组适配器
val adapter=GroupAdapter()
//获取数据库快照
p<0.05{
Log.d(“FetchedUsers”,“$it”)
//将获取的数据分配给模型类
val user=it.getValue(user::class.java)
//空检查
如果(用户!=null){
add(ResultItem(用户,baseContext))
}
}
//将Groupie适配器连接到回收器视图
firebase\u result\u list.adapter=适配器
}
已取消覆盖乐趣(p0:DatabaseError){
//显示错误
Log.d(“FetchedUsers”,“$p0”)
Toast.makeText(baseContext,$p0),Toast.LENGTH\u LONG.show()
}
})
}
}
//观众
类ResultItem(val user:user,ctx:Context):项(){
//设置列表行布局以查看保持架
重写getLayout():Int{
返回R.layout.search\u list\u布局
}
//更改列表布局中文本字段或图像视图的值
覆盖趣味绑定(视图持有者:视图持有者,位置:Int){
//加载用户名
Log.d(“FetchedUserName”,“用户名:${user.Username}”)
viewHolder.itemView.search\u list\u username.text=user.username
//负荷剖面图
滑动(viewHolder.itemView)
.asBitmap()
.load(user.profileImage)
.diskCacheStrategy(diskCacheStrategy.ALL)
.listener(对象:RequestListener{
覆盖加载失败(
e:例外情况,
型号:有吗,
目标:com.bumptech.glide.request.target.target,
isFirstResource:布尔值
):布尔值{
返回错误
}
覆盖资源就绪(
资源:位图,
型号:有吗,
目标:com.bumptech.glide.request.target.target,
数据源:数据源,
isFirstResource:布尔值
):布尔值{
if(资源!=null){
val p=palete.from(resource.generate())
//使用生成的实例
viewHolder.itemView.search\u list\u profile.shadowColor=p.getDominantColor(ContextCompat.getColor(ctx,R.color.defaultColor))
}
返回错误
}
})
.into(viewHolder.itemView.search\u列表\u配置文件)
}
}
声明您的

ctx:Context

就这样

private val ctx:Context

这种方式将能够访问整个类中的内容。

声明您的

ctx:Context

就这样

private val ctx:Context


这种方式将能够访问整个类中的内容。

使用
viewHolder.itemView.getContext()
使用
viewHolder.itemView.getContext()
非常感谢!!成功了。所以一个类变量在整个类中都是可访问的,即使在函数内部也是如此,对吗?这是一个多么简单的解决办法,我想不出来。哦,很高兴能从别人那里知道。非常感谢!!成功了。所以一个类变量在整个类中都是可访问的,即使在函数内部也是如此,对吗?这是一个多么简单的解决办法,我想不出来。哦,很高兴能从别人那里知道。