首页 > 解决方案 > 使用 kotlin 在 Android 中使用 Sqlite 从 listView 中删除记录

问题描述

我想从列表视图中删除记录,方法是逐行点击我*已将删除按钮添加到我点击删除的单元格。但是我在这里面临的问题是“当我从任何行按下删除按钮时,它第一次起作用,但是当我从任何其他行再次按下删除按钮时,什么也没有发生”

请帮助我。我正在使用kotlin作为一种语言

这是我使用过的采用者代码谢谢

   class Adapter(con:Context, arrList:ArrayList<UserModel>): BaseAdapter()
   {
    var studentList = ArrayList<UserModel>()

    var context: Context? = null

    var myInflater: LayoutInflater? = null

    init {

        this.context    = con

        this.myInflater = LayoutInflater.from(context)
        this.studentList  = arrList
    }

    override fun getView(position: Int, convertView: View?, parent: 
   ViewGroup?):View
    {
        var v = myInflater!!.inflate(R.layout.custome,null)
        var ConObj = studentList[position]

        var full_name : String = ConObj.name.toString()
        var textView: TextView = v.findViewById(R.id.text_Name)
        textView.setText(full_name)

        var age : String? = ConObj.age
        var textAge: TextView = v.findViewById(R.id.text_Age)
        textAge.text = age.toString()

        return v
    }

    override fun getItem(position: Int): Any
    {
       return studentList[position]
    }

    override fun getItemId(position: Int): Long
    {
        return position.toLong()
    }

    override fun getCount(): Int
    {
        return studentList.size
    }

}


fun delete(v: View) 
{
  dbHelper = DataBaseHelper(this)
  var res: String = dbHelper.RemoveStudents(name!!)
  if(res=="ok") {
  var pos : Int = listView.getPositionForView(v)

  StudentList.removeAt(pos)
  StudentAdapter.notifyDataSetChanged()
  }
  else {
  Log.e("ab","ab"+res)
  }
  }

标签: androidkotlin

解决方案


推荐阅读