Hello i need to put some text inside the searchView and focus/expand the searchView widget.
this is what i tried but it doesn\'t work
@Override
publi
I implemented it in onCreateOptionMenu and it worked. You don't need to using setIconified(false);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setMaxWidth(Integer.MAX_VALUE);
searchView.setOnClickListener(view -> menu.findItem(R.id.action_sleep_timer).setVisible(false));
searchView.setOnCloseListener(() -> {
menu.findItem(R.id.action_sleep_timer).setVisible(true);
return false;
});
searchView.setOnSearchClickListener(view -> {
menu.findItem(R.id.action_sleep_timer).setVisible(false);
searchView.requestFocus();
});
return true;
}
public void setIconified(boolean iconify) {
if (iconify) {
onCloseClicked();
} else {
onSearchClicked();
}
}
this is code in SearchView
setIconified() is worked for me
In case SearchView is made by menu configuration, I expand the action view using menu item.
private var searchMenuItem: MenuItem? = null
// create search menu item
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.search_menu, menu)
searchMenuItem = menu?.findItem(R.id.action_search)
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
(searchMenuItem?.actionView as? SearchView)?.apply {
setSearchableInfo(searchManager.getSearchableInfo(componentName))
}
return super.onCreateOptionsMenu(menu)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_search)
setSupportActionBar(findViewById(R.id.toolbar))
// Execute 'expandActionView' delayed
// because I want to focus field only when first start.
Handler().postDelayed({
// show field and focus it.
searchMenuItem?.expandActionView()
}, 500)
}