ActionBar中的TouchListener。如何覆盖?

时间:2014-02-26 10:01:09

标签: android android-actionbar ontouchlistener

我有一个带有搜索字段的ActionBar。在搜索栏中,我有“清除”图标,如果按下它,将会调用clearFilterText()。 我创建了这样的搜索字段:

  @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;   
  }

问题在于TouchBistener被ActionBar覆盖。正好覆盖它的地方是com.android.internal.view.menu.ActionMenuPresenter getItemView() 是否有任何解决方案可以使TouchListener工作?

0 个答案:

没有答案