Как обработать событие на кнопке "Поиск" на клавиатуре, которое появляется, когда мы используем 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().
Вот что я ищу:
- При нажатии на 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;
}
});