首页 > 解决方案 > 我有一个搜索栏,在搜索栏中搜索项目后,如果我单击返回按钮,应用程序将关闭

问题描述

我有一个搜索栏,在搜索栏中搜索后,如果我单击返回按钮,应用程序将关闭。我想要的是,如果我在搜索栏中搜索后单击返回按钮,则必须显示默认列表。

   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()
            }
            
        }
        )

标签: androidxmlandroid-studiokotlin

解决方案


应用程序正在关闭,因为您调用了活动的 onbackPressed() 方法。除非您自己处理回调,否则它将关闭。在您的后压方法中,检查您的搜索栏是否为空并在适配器中生成默认列表。


推荐阅读