- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设法在 recycler view
中显示存储在房间数据库中的项目。与 checkboxes
我想将选中的项目存储在列表中,将选中的项目存储在我使用的列表中 setOnClickListener
在复选框上,如适配器中下面的代码,但是当我单击以显示列表时应用程序停止,或者即使列表显示成功,有时当我单击项目的复选框时它也会停止(有关当我删除监听器列表时的信息显示得很好,我可以点击checkboxes
,一切正常,但问题是当我添加监听器来存储选中的项目时)。
class Adapter (val selectedFluxs : MutableList<Flux>) : RecyclerView.Adapter<Adapter.VH>(
) {
class VH(itemView: View) : RecyclerView.ViewHolder(itemView){
lateinit var feed : Flux
}
var allFluxs : List<Flux> = listOf()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
val v = LayoutInflater
.from(parent.getContext())
.inflate(R.layout.item_layout, parent, false)
val holder = VH( v )
v.check.setOnClickListener( ) {
// it as CheckBox
if( v.check.isChecked ){
selectedFluxs.add ( holder.feed )
}else{
selectedFluxs.remove( holder.feed )
}
}
return holder
}
override fun getItemCount(): Int {
return allFluxs.size
}
fun setFlux( allFlux : List<Flux> ) {
this.allFluxs = allFlux
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: VH, position: Int) {
holder.itemView.apply {
Source.text = allFluxs[position].source
Tag.text = allFluxs[position].tag
Url.text = allFluxs[position].adr
check.isChecked =
holder.feed in selectedFluxs
}
}
}
最佳答案
使用ViewHolder
为时尚早实例化 ViewHolder
之前的 View 实例,所以将监听器的代码从 onCreateViewHolder
移动至onBindViewHolder
所以,你的类代码应该是:
class Adapter (val selectedFluxs : MutableList<Flux>) : RecyclerView.Adapter<Adapter.VH>(
) {
class VH(itemView: View) : RecyclerView.ViewHolder(itemView){
lateinit var feed : Flux
}
var allFluxs : List<Flux> = listOf()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
val v = LayoutInflater
.from(parent.getContext())
.inflate(R.layout.item_layout, parent, false)
val holder = VH( v )
}
return holder
}
override fun getItemCount(): Int {
return allFluxs.size
}
fun setFlux( allFlux : List<Flux> ) {
this.allFluxs = allFlux
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: VH, position: Int) {
holder.itemView.apply {
Source.text = allFluxs[position].source
Tag.text = allFluxs[position].tag
Url.text = allFluxs[position].adr
setBackgroundColor(
if (position % 2 == 0)
Color.argb(30,0,220,0)
else
Color.argb(30,0,0,220)
)
check.isChecked =
holder.feed in selectedFluxs
holder.check.setOnClickListener( ) {
// it as CheckBox
if( v.check.isChecked ){
selectedFluxs.add ( holder.feed )
}else{
selectedFluxs.remove( holder.feed )
}
}
}
}
关于android - 将回收站 View 中显示的选中复选框的项目保存在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65011597/
@ 目录 原理 创建过滤器 使用过滤器 查询 删除 恢复
我在回收站 View 中使用了一个 item.xml,但文本超出了屏幕。我试图依靠这个 answer , You can avoid all of this by giving each textvi
我的应用程序中有一个回收站 View 。每个回收器 View 项都有一个 imageView。我使用 asyncTask 加载位图并将它们添加到磁盘缓存,然后再将它们设置到 onPostExecute
我已经多次问过这个类似的问题,我花了 2 周多的时间才试图找出解决方案。是的,我知道有多个类似的问题,但我问的原因是因为堆栈上流的解决方案都不起作用。我是 Android 开发的初学者,因此我问你请帮
有谁知道允许特定角色的用户查看 Sitecore 回收站中所有项目的解决方案? 目前,只有管理员可以查看所有已删除的项目。用户只能看到他们已删除的项目。 最佳答案 没有开箱即用的方法,SqlArchi
您好,我有以下回收器适配器: package com.example.app.adapters; import android.annotation.TargetApi; import android
我看不到回收 View ,不确定哪里出了问题。如果你能帮助我,那就太好了。 fragment public class CallDurationFragment extends Fragment {
我是 android 开发的新手。我有一个带有 Viewholder 的 recyclerview 用于显示照片。我在我的应用程序中实现了 like 功能,但我面临的唯一问题是当我添加一个 喜欢 在照
我正在编写一个消息传递应用程序,在 RecyclerView 中显示我的消息和其他消息。 白色背景消息是我的消息,彩色消息是其他消息。 当每条消息顺序为“我的消息,其他消息,...”时,回收站 Vie
我创建了一个包含不同类型 subview 的社交帖子回收 View 。每个 child 多个 layout.recyclerview 工作正常,唯一的问题是 recyclerview 滚动不流畅。 我
我有一个像这样的 View 模型 - private val viewState = SchoolsViewState() fun onViewOpened() = Trans
我正在研究 Android 的应用程序接近完成它但我在 recyclerView 中发现了问题,我不知道如何在 recyclerView 的 Item 的 TextView 上实现点击监听器? (当我
我正在做一个 RecyclerView 示例。问题是,当我在列表中添加第一个项目时,它会在回收 View 中正确显示该项目,但我添加的下一个项目不会显示在回收 View 中。 请帮帮我。 适配器代码是
我想问一下我如何从适配器回收器 View 调用 Activity 中的方法。 在函数 buildRecyclerView 中设置适配器: private void buildRecyclerView(
这个问题在这里已经有了答案: Custom Adapter getView() method is not called (6 个答案) 关闭 6 年前。 我正在使用回收站 View ,但它没有显示
我有一个回收站 View ,我在其中显示了自定义行,但该行未填满宽度。我已经添加了 match_parent 宽度,但它仍然只是包装内容。 我的回收站 View -:
我一直在使用回收器 View 在我的 fragment 上显示 15 张图像。图像位于可绘制文件夹中。我尝试了外部 View 来执行此操作,但速度要慢得多并且滞后很多。因此我使用回收者 View 来解
我的问题是我希望回收站 View 响应对整个 View 的点击,而不是对回收站 View 具有的每个项目的单独点击 viewModel.handleClick()}"
以下是我的行项目的布局:
我正在处理 Recycler View ,在这里我将三个回收器 View 水平放置在布局中。问题是第二个和第三个回收器 View 项目显示但无法滚动,即使在内部使用嵌套滚动并特此附加xml。请建议我如
我是一名优秀的程序员,十分优秀!