拦截硬件搜索按钮与视图交互

时间:2011-12-30 02:23:55

标签: android search onkeydown

我想发一个问题答案。我想使用手机的搜索按钮与我的res文件夹中的布局中定义的视图进行交互。基本上是一个onSearchListener。在这里,我将展示如何使用搜索按钮按下布局中的按钮的示例。

    public class SearchIntercept extends Activity{

            boolean activateSearch;    

        @Override
        public boolean onKeyDown(int keycode, KeyEvent e) {
            switch(keycode) {
                case KeyEvent.KEYCODE_SEARCH:
                    SearchManager mSearch = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
                    onSearchRequested();
                            activateSearch = true;
                    mSearch.stopSearch();
                    return true;
            }

            return super.onKeyDown(keycode, e);
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.search_example);

            SearchManager mSearch = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
            final Button button = (Button) findViewById(R.id.Button_1); 


            // Search Listener
            mSearch.setOnCancelListener(new SearchManager.OnCancelListener() {

                @Override
                public void onCancel() {
                                    if (activateSearch == ture){
                    button.setPressed(true);
                                    activateSearch = false;
                                    }                   
                }
            });
       }
    }

所以我在这里做的是获取键输入,然后开始搜索请求。然后我立即取消该请求,这允许我使用SearchManager中内置的OnCancelListener。此时,您可以接受请求并使用它执行任何操作,就像普通的侦听器一样。如果您有不同的方法,请在答案中告诉我们。此外,如果我以不同的方式发布,请告诉我,不幸的是我仍然是一个菜鸟。

0 个答案:

没有答案