@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
final MenuItem searchItem = menu.findItem(R.id.search);
SearchView searchView = (android.widget.SearchView) searchItem.getActionView();
// Detect SearchView icon clicks
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setItemsVisibility(menu, searchItem, false);
}
});
// Detect SearchView close
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
setItemsVisibility(menu, searchItem, true);
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
******************************************************************************
for my case
my Toolbar is
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
final MenuItem searchItem = menu.findItem(R.id.search);
SearchView searchView = (android.widget.SearchView) searchItem.getActionView();
// Detect SearchView icon clicks
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setItemsVisibility(menu, searchItem, false);
}
});
// Detect SearchView close
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
setItemsVisibility(menu, searchItem, true);
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
******************************************************************************
for my case
my Toolbar is
private void actionBarView(){ toolbar = (Toolbar) findViewById(com.mafiree.salezstorm.R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setTitle("Tittle"); /* if(toolbar != null) { setSupportActionBar(toolbar); getSupportActionBar().setTitle("My custom toolbar!"); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); }*/ //back button action ImageView imageview_back=(ImageView)toolbar.findViewById(com.mafiree.salezstorm.R.id.imageview_back); imageview_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Toast.makeText(getApplicationContext(),"back clicked",Toast.LENGTH_LONG).show(); finish(); } }); textview_property=(TextView)findViewById(R.id.textview_property_list); // textview_property.setVisibility(View.GONE); textview_property.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); }
my Option menu
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.property_menu,menu);
//http://www.mysamplecode.com/2012/11/android-expandablelistview-search.html
MenuItem searchItem = menu.findItem(R.id.menu_search);
searchView = (SearchView) searchItem.getActionView();
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Toast.makeText(getApplicationContext(),"back clicked",Toast.LENGTH_LONG).show();
}
});
searchView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"back clicked",Toast.LENGTH_LONG).show();
Log.d("************************************searchView**","-----");
}
});
searchView.setOnSearchClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"back search",Toast.LENGTH_LONG).show();
//setItemsVisibility(menu, searchItem, false); textview_property.setVisibility(View.GONE);
}
});
searchView.setOnCloseListener(new OnCloseListener() {
@Override
public boolean onClose() {
textview_property.setVisibility(View.VISIBLE);
Toast.makeText(getApplicationContext(),"back close",Toast.LENGTH_LONG).show();
return false;
}
});
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Log.d("*********************************","------"+query);
if(null != arrayList || arrayList.size() > 0){
adapter=new PropertyAdapter(getApplicationContext());
listView.setAdapter(adapter);
adapter.getFilter().filter(query);
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.d("*********************************","------"+newText);
return false;
}
});