Как обработать событие на кнопке "Поиск" на клавиатуре, которое появляется, когда мы используем PlaceAutocompleteFragment

Реализация PlaceAutocompleteFragment работает нормально, так как должна работать. При нажатии на PlaceAutocompleteFragment, я могу искать места.

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
            getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            Toast.makeText(AroundMe.this, "" + place.getName(), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(Status status) {
            Toast.makeText(AroundMe.this, "" + status, Toast.LENGTH_SHORT).show();
        }
    });

После нажатия на список элементов результатов поиска я могу получить информацию о метках внутри метода onPlaceSelected().

Вот что я ищу:

  1. При нажатии на PlaceAutocompleteFragment, приходит KeyBoard и справа внизу есть кнопка поиска. Я хочу обработать событие на этой кнопке поиска. Но в данный момент при нажатии на кнопку поиска клавиатура скрывается.

Я уже пробовал этот способ, но он не работает.

EditText editText = (EditText) autocompleteFragment.getActivity().findViewById(R.id.place_autocomplete_search_input);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    Toast.makeText(AroundMe.this, "check", Toast.LENGTH_SHORT).show();
                }
                return false;
            }
        });

Тоже пробовал, но все равно не работает.

EditText editText = (EditText) autocompleteFragment.getActivity().findViewById(R.id.place_autocomplete_search_input);
    editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
            if (keyEvent.getAction()== KeyEvent.KEYCODE_SEARCH){
                switch (keyCode){
                    case KeyEvent.KEYCODE_SEARCH:
                        Toast.makeText(AroundMe.this, "check" , Toast.LENGTH_SHORT).show();
                        break;
                }
            }
            return false;
        }
    });

0 ответов