I create a editText filter search. I want the recyclerView will show when user typing. In my apps, when user typing the filter was show, but the list recyclerView show too. maybe this video can explain what i mean filterSearch
            Asked
            
        
        
            Active
            
        
            Viewed 99 times
        
    0
            
            
        - 
                    Does this answer your question? [How to filter a RecyclerView with a SearchView](https://stackoverflow.com/questions/30398247/how-to-filter-a-recyclerview-with-a-searchview) – Martin Marconcini Jul 24 '20 at 10:34
1 Answers
0
            
            
        Here is my code which works
ADAPTER
    class SearchAdapter(val context: Context, val item:List<Item>) : RecyclerView.Adapter<SearchAdapter.ChildHolder>() {
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ChildHolder {
            val inflator = LayoutInflater.from(context).inflate(R.layout.search_container,parent,false)
            return ChildHolder(inflator)
        }
    
        override fun getItemCount(): Int {
           return item.size
        }
        override fun onBindViewHolder(holder: ChildHolder, position: Int) {
            val current = item[position]
            holder.item.name.setText(current.name)
        }
    
        class ChildHolder(view: View) : RecyclerView.ViewHolder(view){
            val item = view.country_container
        }
    }
    
    
    data class Item(val name:String)
MAINACTIVITY
class MainActivity : AppCompatActivity() {
    var item:ArrayList<Item> = ArrayList()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        item.add(
            Item("russia")
        )
        item.add(
            Item("india")
        )
        item.add(
            Item("usa")
        )
        item.add(
            Item("china")
        )
        item.add(
            Item("uk")
        )
        item.add(
            Item("brazil")
        )
        item.add(
            Item("pakistan")
        )
        item.add(
            Item("sri lanka")
        )
        search_view.setOnQueryTextListener(object : SearchView.OnQueryTextListener{
            override fun onQueryTextSubmit(query: String?): Boolean {
                TODO("Not yet implemented")
            }
            override fun onQueryTextChange(newText: String?): Boolean {
                val filtered = item.filter { item ->
                  item.name.contains(newText.toString())
                }
                constructRecycleView(filtered)
                return true
            }
        })
    }
    private fun constructRecycleView(item:List<Item>){
        val adapter = SearchAdapter(this,item)
        recycle_view.adapter = adapter
        recycle_view.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
    }
}
constructRecycleView method always create's new adapter, you can also create methods where you can mutate the adapter item and call notifyDatasetChanged Method ,and please implement onQueryTextSubmit on your own if not your application gives Error
 kotlin.NotImplementedError: An operation is not implemented: Not yet implemented
OUTPUT
 
    
    
        user9116815
        
- 23
- 1
- 10
 
    
