【发布时间】:2021-07-14 07:29:02
【问题描述】:
我有一个搜索栏,在搜索栏中搜索后,如果我单击返回按钮,应用程序将关闭。我想要的是,如果我在搜索栏中搜索后单击返回按钮,则必须显示默认列表。
activity?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if(){
}else{
isEnabled = false
activity?.onBackPressed()
}
}
})
searchBar.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
val listData = arrayListOf<Restaurant>()
for (i in 0 until restaurantInfoList.size) {
if (restaurantInfoList[i].restaurantName.toLowerCase()
.contains(searchBar.text.toString().toLowerCase()) ||
restaurantInfoList[i].restaurantPrice.contains(searchBar.text.toString()) ||
restaurantInfoList[i].restaurantRating.contains(searchBar.text.toString())
) {
listData.add(restaurantInfoList[i])
}
}
recyclerDashboard.adapter = RestaurantRecycleAdapter(activity as Context, listData)
(recyclerDashboard.adapter as RestaurantRecycleAdapter).notifyDataSetChanged()
}
}
)
【问题讨论】:
-
在活动中覆盖
onBackPressed(),并通过检查是否应用搜索来执行适当的操作。您可能还想了解onBackPressedDispatcher -
好的,给
requireActivity().onBackPressedDispatcher.addCallback(...)添加回调。 -
我已经编辑了程序,条件是当我在搜索栏中点击返回按钮时应该显示默认列表。如何提及条件
-
检查搜索栏是否有焦点。
-
从上面的代码中,如果
searchBar有任何文字,内容就会被过滤掉。如果搜索框为空,则内容为完整/原创。
标签: android xml android-studio kotlin