Android 删除项目时从适配器通知活动(emptyView)
让我们在开头定义一个变量,它将更易于阅读:Android 删除项目时从适配器通知活动(emptyView),android,android-recyclerview,kotlin,Android,Android Recyclerview,Kotlin,让我们在开头定义一个变量,它将更易于阅读: sqlite3列KEY\u TITLE=A 我用游标加载器进行传导。当列A中没有行时,我希望活动显示一个空视图。为此,我创建了一个方法,用于检查列a中的所有行是否有数据 fun hideLayout(){ val isEmpty = emptyViewObserver(applicationContext).isEmpty() if (isEmpty) { recyclerView.visibil
sqlite3列
KEY\u TITLE
=A
我用游标加载器进行传导。当列A
中没有行时,我希望活动显示一个空视图。为此,我创建了一个方法,用于检查列a
中的所有行是否有数据
fun hideLayout(){
val isEmpty = emptyViewObserver(applicationContext).isEmpty()
if (isEmpty) {
recyclerView.visibility = View.GONE
emptyView.visibility = View.VISIBLE
} else {
recyclerView.visibility = View.VISIBLE
emptyView.visibility = View.GONE
}
}
使用isEmpty
方法初始化emptyViewServer
:
class emptyViewObserver(val context: Context){
fun isEmpty():Boolean{
val db = WalletDbHelper(context).readableDatabase
val projection = arrayOf(KEY_TITLE)
val cursor = db.query(
WalletEntry.TABLE_NAME,
projection,
null,
null,
null,
null,
null
)
val names = mutableListOf<String>()
with(cursor){
while (moveToNext()){
val name = getString(cursor.getColumnIndexOrThrow(WalletEntry.KEY_TITLE))
names.add(name)
}
}
db.close()
return names.isEmpty()
}
}
并删除():
你知道我怎么写这段代码吗?你需要一个回调,当你删除某个项目时,检查是否是最后一个项目,如果是真的,调用它 在适配器上添加此接口:
interface OnListIsEmpty{
fun onListIsEmpty()
}
并在适配器中创建一个类似全局变量的对象:
private var mOnListIsEmpty: OnListIsEmpty? = null
添加setter方法:
fun setOnListIsEmpty(onListIsEmpty: OnListIsEmpty){
this.mOnListIsEmpty = onListIsEmpty
}
在delete方法中,如果为空,则进行验证如果为真,则:
mOnListIsEmpty?.onListIsEmpty()
在初始化适配器时,不要忘记设置回调:
adapter.setOnListIsEmpty(object : OnListIsEmpty{
override fun onListIsEmpty() {
//your action
}
})
mOnListIsEmpty?.onListIsEmpty()
adapter.setOnListIsEmpty(object : OnListIsEmpty{
override fun onListIsEmpty() {
//your action
}
})