Search code examples
javaandroidsearchviewandroid-menu

SearchView.setQuery() before user clicked on magnifier menuitem


I have a SearchView item in my menu:

<item
    android:id="@+id/search_toolbar_main"
    android:icon="@drawable/ic_search_black_24dp"
    app:showAsAction="always|collapseActionView"
    app:actionViewClass="androidx.appcompat.widget.SearchView"
    android:title="Search" />

Now I want to programmatically open the searchview and set text with searchView.setQuery(). But if I do searchView.setQuery() before user clicked the magnifier menuitem nothing happens.


Solution

  • You can call to expandActionView() method to focus it

    @Override
    public boolean onCreateOptionsMenu( Menu menu )
    {
        super.onCreateOptionsMenu( menu );
    
        MenuItem searchMenuItem = menu.findItem( R.id.search_toolbar_main ); 
        searchMenuItem.expandActionView(); // Expand the search menu item in order to show by default the query
    
        return true;
    }