光标不改变记录
Cursor doesn't change record
我正在处理应用程序,我想从 table 属性类型等于的所有记录中 select 例如。
我使用了这个查询
val cursor = db.query(TableInfo2.TABLE_NAME, null, TableInfo2.TABLE_COLUMN_TYPE+" LIKE ?", arrayOf("2"), null, null, null)
在 getItemCount()
中的适配器中 returns 2 这是真的,所以它可以工作
但是当我在 onBindViewHolder
中尝试它时,它根本没有移动,它只停留在一条记录上。
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val cursor = db.query(TableInfo2.TABLE_NAME, null, TableInfo2.TABLE_COLUMN_TYPE+" LIKE ?", arrayOf("2"), null, null, null)
if(cursor.moveToFirst()) {
if(cursor.getString(1)=="option")
{
holder.imgM.setImageURI(cursor.getString(5).toUri())
holder.imgM.setOnClickListener {
val intent = Intent(context, AddNewFood::class.java)
context.startActivity(intent)
}
}else{
holder.imgM.setImageURI(cursor.getString(5).toUri())
holder.imgM.setOnClickListener {
val dialog = DialogPopUp(cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(5).toUri())
val manager = (context as AppCompatActivity).supportFragmentManager
dialog.show(manager, "customDialog")
}
holder.imgM.setOnLongClickListener(object: View.OnLongClickListener{
override fun onLongClick(p0: View?): Boolean {
MainActivity.position = position + 1
MainActivity.check2 = true
val intent = Intent(context, AddNewFood::class.java)
context.startActivity(intent)
return false
}
})
}
}
}
原来是
val cursor = db.query(
TableInfo2.TABLE_NAME, null, BaseColumns._ID + "=?", arrayOf(
holder.adapterPosition.plus(
1
).toString()
), null, null, null
)
如果是这样就returns全部记录
我试了cursor.moveToNext()
很多地方都没有结果。
好的,我知道了!
如果有人需要,我已经添加了 cursor.moveToPosition(position)
在第一个 if 语句之后
我正在处理应用程序,我想从 table 属性类型等于的所有记录中 select 例如。
我使用了这个查询
val cursor = db.query(TableInfo2.TABLE_NAME, null, TableInfo2.TABLE_COLUMN_TYPE+" LIKE ?", arrayOf("2"), null, null, null)
在 getItemCount()
中的适配器中 returns 2 这是真的,所以它可以工作
但是当我在 onBindViewHolder
中尝试它时,它根本没有移动,它只停留在一条记录上。
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val cursor = db.query(TableInfo2.TABLE_NAME, null, TableInfo2.TABLE_COLUMN_TYPE+" LIKE ?", arrayOf("2"), null, null, null)
if(cursor.moveToFirst()) {
if(cursor.getString(1)=="option")
{
holder.imgM.setImageURI(cursor.getString(5).toUri())
holder.imgM.setOnClickListener {
val intent = Intent(context, AddNewFood::class.java)
context.startActivity(intent)
}
}else{
holder.imgM.setImageURI(cursor.getString(5).toUri())
holder.imgM.setOnClickListener {
val dialog = DialogPopUp(cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(5).toUri())
val manager = (context as AppCompatActivity).supportFragmentManager
dialog.show(manager, "customDialog")
}
holder.imgM.setOnLongClickListener(object: View.OnLongClickListener{
override fun onLongClick(p0: View?): Boolean {
MainActivity.position = position + 1
MainActivity.check2 = true
val intent = Intent(context, AddNewFood::class.java)
context.startActivity(intent)
return false
}
})
}
}
}
原来是
val cursor = db.query(
TableInfo2.TABLE_NAME, null, BaseColumns._ID + "=?", arrayOf(
holder.adapterPosition.plus(
1
).toString()
), null, null, null
)
如果是这样就returns全部记录
我试了cursor.moveToNext()
很多地方都没有结果。
好的,我知道了!
如果有人需要,我已经添加了 cursor.moveToPosition(position)
在第一个 if 语句之后