android - 在 KOTLIN 的 Bottom Sheet 的 Recycler View Adapter 中添加数据
问题描述
我想将文本项目添加到底部工作表对话框,当我完成将项目添加到底部工作表对话框并单击显示对话框按钮时,它应该显示我添加的所有项目。在这里,我试图从编辑文本中获取文本,将其添加到底部工作表对话框的 RecyclerView 。这是代码 MainActivity.kt-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val showDialogBtn = findViewById<Button>(R.id.button)
val text = findViewById<EditText>(R.id.text_)
val addBtn = findViewById<Button>(R.id.add_btn)
//initialize bottom sheet layout
val view = View.inflate(this,R.layout.btm_sheet,null)
//Initialize BottomSheet
val btmSheet = BottomSheetDialog(this)
btmSheet.setContentView(view)
btmSheet.behavior.peekHeight = BottomSheetBehavior.PEEK_HEIGHT_AUTO
btmSheet.behavior.state = BottomSheetBehavior.STATE_EXPANDED
btmSheet.behavior.skipCollapsed = true
//bottom sheet Component
val okBtn = view.findViewById<Button>(R.id.ok)
val rv = view.findViewById<RecyclerView>(R.id.recyclerView)
val list = ArrayList<CartList>() //
val adapter = RvAdapter(list) //adapter
rv.adapter = adapter
addBtn.setOnClickListener {
val a = text.text.toString() //getting text from edit text
list.add(CartList(a)) // adding text in adapter list
adapter.notifyDataSetChanged() //refreshing adapter
println(list)
}
showDialogBtn.setOnClickListener {
btmSheet.show() //show bottomSheetDialog
}
okBtn.setOnClickListener {
btmSheet.dismiss() // Dismiss Dialog
}
}
适配器是 -
data class CartList(val tum:String)
class RvAdapter(val d:MutableList<CartList>):RecyclerView.Adapter<MyViewHOlder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHOlder {
val i = LayoutInflater.from(parent.context).inflate(R.layout.item,parent,false)
return MyViewHOlder(i)
}
override fun onBindViewHolder(holder: MyViewHOlder, position: Int) {
val id = d[position]
holder.itemView.findViewById<TextView>(R.id.hello_world).text = id.tum
}
override fun getItemCount(): Int = d.count()
}
class MyViewHOlder(val v: View):RecyclerView.ViewHolder(v) {
}
解决方案
推荐阅读
- mysql - 创建外键时出错:MySQL 错误 1215:无法添加外键约束
- ios - Xcode 10 Beta 6 Playground 中未调用 Deinit 方法
- regex - 正则表达式:PCRE 原子组不起作用
- sql - 如何使用 LISTAGG 和 Regexp_replace 获得不同的值
- c# - 删除某些控件后如何删除(删除)文本框之间的空格?
- c++ - 在c ++中使用向量在带有循环的动态数组中插入值
- javascript - 变量未定义(TypeError:无法读取属性'todos' of null)ReactJS
- java - 自动化 POST 请求的 Java 后台服务
- html - Bootstrap 下拉菜单不会在不滚动的情况下在附加位置打开
- deep-learning - 我可以在更差的 GPU 上运行预训练模型吗?