Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 3 columns

package com.example.notepadapp

import android.app.SearchManager
import android.content.Context
import android.content.Intent
import android.icu.text.CaseMap
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.*
import android.widget.BaseAdapter
import android.widget.Toast
import android.widget.SearchView
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.ticitet.view.*

class MainActivity : AppCompatActivity() {
var listofnode = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// listofnode.add(Note(1,"have to go out side ","take new shoe for market "))
//istofnode.add(Note(2,“football”, “play football with friends”))
//listofnode.add(Note(3,“gym”,“go gym at 5PM”))

    loadQuery("%")


}
fun loadQuery(title:String){

    var dbmanager= Dbmanager(this)
    val projection = arrayOf("ID","Title","Description")
    val selectionArgs =   arrayOf(title)
    val cursor = dbmanager.Query(projection,"title like ?",selectionArgs,"title")
    listofnode.clear()
    if(cursor.moveToFirst()) {
        do {
            val ID = cursor.getInt(cursor.getColumnIndex("ID"))
            val Title = cursor.getString(cursor.getColumnIndex("Title"))
            val Description = cursor.getString(cursor.getColumnIndex(" Description "))

             listofnode.add(Note(ID,Title,Description))

        }while(cursor.moveToNext())
    }
    var nodeadpater = noteAdapter(listofnode)
    list.adapter = nodeadpater
}



override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.mainmenu,menu)

    val sv:SearchView = menu!!.findItem(R.id.app_bar_search).actionView as SearchView
    val sm = getSystemService(Context.SEARCH_SERVICE) as SearchManager
    sv.setSearchableInfo(sm.getSearchableInfo(componentName))
    sv.setOnQueryTextListener(object:SearchView.OnQueryTextListener{
        override fun onQueryTextSubmit(query: String?): Boolean {
            Toast.makeText(applicationContext,query,Toast.LENGTH_LONG).show()
            loadQuery("%"+ query +"%")
            return false
        }
        override fun onQueryTextChange(newText: String?): Boolean {
            return false
        }

    })
    return super.onCreateOptionsMenu(menu)
}


override fun onOptionsItemSelected(item: MenuItem): Boolean {
    if(item!= null){
        when(item.itemId){
            R.id.te->{
                var intent = Intent(this,MainActivity2::class.java)
                startActivity(intent)
            }
        }

    }
    return super.onOptionsItemSelected(item)
}

inner class noteAdapter:BaseAdapter{
var listofnode = ArrayList()
constructor(listofnode:ArrayList):super(){
this.listofnode = listofnode
}

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

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

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

   override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
       var myview = layoutInflater.inflate( R.layout.ticitet,null)
       var mynode = listofnode[position]
       myview.textView.text = mynode.notename
       myview.textView2.text = mynode.notedes
       return myview
   }

}
}