如何解决有什么方法可以在函数内部调用列表而不在函数参数中分配它? 科特琳
我是kotlin和Android Studio的新手,我正在尝试制作待办事项列表应用程序。
我正在尝试添加滑动以删除应用程序内部的功能。我无法在RecyclerView的displayAdapter内的swipetodel函数内调用列表:
class DashboardAdapter(val activity: dashboard,val dbHandler: DBHandler,internal var list: MutableList<Todo>) :
RecyclerView.Adapter<DashboardAdapter.ViewHolder>(){
override fun onCreateViewHolder(p0: ViewGroup,p1: Int): ViewHolder {
return ViewHolder(LayoutInflater.from(activity).inflate(R.layout.rv_child_layout,p0,false))
}
val item=object :swipetodel(this,itemtouchhelper.LEFT ){
override fun onSwiped(viewHolder: RecyclerView.ViewHolder,direction: Int) {
dbHandler.deletetoDo(list[p1].id)
activity.refreshList()
}
}
override fun onBindViewHolder(holder: ViewHolder,p1: Int) {
holder.todoName.text = list[p1].name
holder.todoName.setonClickListener{
val intent = Intent(activity,subtask_list::class.java)
intent.putExtra(INTENT_Todo_ID,list[p1].id)
intent.putExtra(INTENT_Todo_NAME,list[p1].name)
activity.startActivity(intent)
}
}
override fun getItemCount(): Int {
return list.size
}
class ViewHolder(v : View) : RecyclerView.ViewHolder(v){
val todoName : TextView = v.findViewById(R.id.tv_todo_name)
}
}
我在以下单词的p1中得到未解决的引用:
dbHandler.deletetoDo(list[p1].id)
我知道这是因为我没有在onSwiped函数中添加p1参数,但是如果这样做,它将创建另一个函数而不是覆盖。是否有解决方法? 删除功能如下:
fun deletetoDo(todoId: Long){
val db = writableDatabase
db.delete(TABLE_Todo_ITEM,"$COL_Todo_ID=?",arrayOf(todoId.toString()))
db.delete(TABLE_Todo,"$COL_ID=?",arrayOf(todoId.toString()))
}
abstract class swipetodel(
context: dashboard.DashboardAdapter,dragDir: Int,swipeDir: Int):itemtouchhelper.SimpleCallback(dragDir,swipeDir)
{
override fun onMove(
recyclerView: RecyclerView,viewHolder: RecyclerView.ViewHolder,target: RecyclerView.ViewHolder
): Boolean {
return false
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder,direction: Int) {
Todo("Not yet implemented")
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。