android - 我有一个搜索栏,在搜索栏中搜索项目后,如果我单击返回按钮,应用程序将关闭
问题描述
我有一个搜索栏,在搜索栏中搜索后,如果我单击返回按钮,应用程序将关闭。我想要的是,如果我在搜索栏中搜索后单击返回按钮,则必须显示默认列表。
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() 方法。除非您自己处理回调,否则它将关闭。在您的后压方法中,检查您的搜索栏是否为空并在适配器中生成默认列表。
推荐阅读
- r - ggplot:堆叠条形图 - geom_text 标签凌乱
- python - Wxpython将数据从一帧传递到另一帧
- c++ - 用于返回嵌套类类型的范围解析运算符
- objective-c - Objective-C,dispatch_queue_t 阻塞主线程
- php - 在 Laravel 中为路由设置别名
- xcode - 如何降级 Xamarin.ios 版本 Visual Studio 2019 使其与 Xcode 10.2 兼容
- php - Gate::allows 在 laravel 中的用户权限
- chart.js - 在 ChartJs.Blazor 中向 ChartJsLineChart 发送数据
- asp.net - 从 .NET 中的引导程序中获取输入复选框标记的值
- ionic-framework - 您如何在 ionic 中为侧抽屉菜单制作圆角?