我试图过滤一个列表,每次查询文本的SearchView已经改变。
svComuni
是SearchView的名称。
这是我的主要活动的代码:
private fun setUIControl() {
binding.svComuni.setOnQueryTextListener(textChangeListener())
}
inner class textChangeListener: SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(p0: String?): Boolean {
return findAllSimilarCountry(p0)
}
override fun onQueryTextChange(p0: String?): Boolean {
return findAllSimilarCountry(p0)
}
}
private fun findAllSimilarCountry(p0: String?): Boolean {
Log.d(TAG, p0!!)
return true
}
通过使用这个监听器,当我插入一些字符和提交时,我能够检测到SearchView查询文本中的每一个变化,但如果我删除最后一个字符则不能。因此,空查询文本不会触发侦听器。我该如何包括这个案例?
是否尝试在侦听器方法中添加验证?例如:
if (p0.equals("")) {
return false
} else {
return findAllSimilarCountry(p0)
}