iammert/MultiSearchView

how to set "search text" prorgrammatically in searchbar?

kunjanrshah opened this issue · 2 comments

how to set "search text" prorgrammatically in searchbar ?

how to set "search text" prorgrammatically in searchbar ?

I guess you mean how to setup the searchView without clicking on the search icon?

   searchContainerView = multiSearchView.findViewById(R.id.searchViewContainer);
    imageViewSearch = multiSearchView.findViewById(R.id.imageViewSearch);
    searchContainerView.setOnClickListener(view -> imageViewSearch.performClick());

    searchContainerView.performClick()

A little , probably not best, workaround to perform a click programmatically to trigger the search text and editTextView to appear. - Somehow it didnt work for me to just call the imageViewSearch to perform a click. - I had to add a new onClickListener to the ContainerView, and make it trigger the imageViewSearch to trigger lol

thats what it actually triggers to start;

    init {
        binding.imageViewSearch.setOnClickListener {
            if (binding.searchViewContainer.isInSearchMode().not()) {
                binding.searchViewContainer.search()
            } else {
                binding.searchViewContainer.completeSearch()
            }
        }
    }

to add to the previous answer, just use a handler to delay the thing by 100ms and it should work
use this code in MulitSearchView class
fun openSearchView()
{
Handler(Looper.getMainLooper()).postDelayed({ // This method will be executed once the timer is over
binding.searchViewContainer.setOnClickListener {
binding.imageViewSearch.performClick()
}
binding.searchViewContainer.performClick()
}, 200)
}
then call binding.multiSearchView.openSearchView() from your Activity
worked perfectly for me.