1

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?

anber
  • 3,463
  • 6
  • 39
  • 68

0 Answers0