简体   繁体   English

覆盖searchview明文按钮

[英]override searchview clear text button

I want to override the default action when the user presses the cross which appears at the end of the searchview's textview and clears the search query. 当用户按下出现在搜索视图的文本视图末尾的叉并清除搜索查询时,我想覆盖默认操作。

I want to clear the search query as well as open another activity. 我想清除搜索查询以及打开另一个活动。

how can i override that? 我该如何覆盖呢?

@SuppressLint("NewApi")
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.country_list_activity_actions, menu);
    mSearchMenu = menu.findItem(R.id.action_search);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // Get the SearchView and set the searchable configuration
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

        // Assumes current activity is the searchable activity
        mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        mSearchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default

        // Get the search close button image view
        ImageView closeButton = (ImageView)mSearchView.findViewById(R.id.search_close_btn);

        // Set on click listener
        closeButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                LoggerUtils.d(LOG, "Search close button clicked");
                //Find EditText view
                EditText et = (EditText) findViewById(R.id.search_src_text);

                //Clear the text from EditText view
                et.setText("");

                //Clear query
                mSearchView.setQuery("", false);
                //Collapse the action view
                mSearchView.onActionViewCollapsed();
                //Collapse the search widget
                mSearchMenu.collapseActionView();
            }
       });
    }

    // When using the support library, the setOnActionExpandListener() method is
    // static and accepts the MenuItem object as an argument
    mSearchMenu.setOnActionExpandListener(new OnActionExpandListener() {

        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            //Nothing to do here
            LoggerUtils.d(LOG, "Search widget expand ");
            return true; // Return true to expand action view
        }

        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            LoggerUtils.d(LOG, "Search widget collapsed ");
            return true; // Return true to collapse action view
        }
    });

    return super.onCreateOptionsMenu(menu);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM