I have an ActionBar with search field on top. In search field I have the "clear" icon, if you press on it clearFilterText()
will be called.
I created search field like this:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuUtil.addCommonMenuItems(this, menu);
getSupportMenuInflater().inflate(R.menu.guide_list_menu, menu);
MenuItem searchItem = menu.findItem(R.id.search_menu_item);
searchItem.setActionView(createSearchView());
searchItem.expandActionView();
searchItem.setVisible(true);
return true;
}
private View createSearchView() {
LayoutInflater inflater = LayoutInflater.from(getSupportActionBar().getThemedContext());
searchText = (EditText) inflater.inflate(R.layout.search_view, null);
searchText.setOnTouchListener(
new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// ...
clearFilterText();
// ...
});
// ...
return searchText;
}
The problem is that TouchListener overwritten by ActionBar. Exactly place where it's overwritten is com.android.internal.view.menu.ActionMenuPresenter getItemView()
Are there any solution to make this TouchListener work?