I have an activity which is containing fragment, then in the fragment i have toolbar which is containing SearchView. I want to override activity's onBackPressed() to close the searchView's focus. But i didn't found how to get the state of fragment's menu. Here's the code :
MainActivity.java
@Override
public void onBackPressed() {
if (currentFragment instanceof FragmentListProduct) {
DrawerLayout drawerLayout = (DrawerLayout) currentFragment.getView().findViewById(R.id.drawer_layout);
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START);
} /*if currentFragment.searchViewIsNotClosed {
closeSearchView();
} */ else if (backstackFragment.size() > 0) {
replaceFragment(null, backstackFragment.pop());
} else {
super.onBackPressed();
}
} else {
super.onBackPressed();
}
}
FragmentListProduct.java
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_main, menu);
MenuItem searchItem = menu.findItem(R.id.app_bar_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {...});
super.onCreateOptionsMenu(menu, inflater);
}
So how to get fragment's menu in activity so i can access its state?