Кнопка перехвата поиска оборудования для взаимодействия с представлением - PullRequest
1 голос
/ 30 декабря 2011

Я хотел отправить ответ на вопрос, который у меня был.Я хотел взаимодействовать с представлением, которое определено в макете в моей папке 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;
                                    }                   
                }
            });
       }
    }

Итак, что я здесь делаю, так это захват ввода ключа и запуск запроса на поиск.Затем я немедленно отменяю этот запрос, что позволяет мне использовать OnCancelListener, встроенный в SearchManager.В этот момент вы можете принять запрос и сделать с ним все, что захотите, как обычный слушатель.Если у вас есть другой способ сделать это, пожалуйста, сообщите нам об этом в ответах.Также, если я должен опубликовать это по-другому, пожалуйста, дайте мне знать, к сожалению, я все еще новичок.

...