Как мне установить onCancelListener для поиска? - PullRequest
0 голосов
/ 14 марта 2011

Я реализую MapView с функцией поиска, и мне нужно выполнить некоторые конкретные действия, чтобы поиск работал хорошо (IE включает слой значков, который будет запрашивать поиск).В настоящее время я использую метод OnSearchRequested для выполнения этих действий.Однако, если пользователь отменяет действие из диалогового окна поиска, я хочу вернуть карту в ее прежнее состояние (то есть состояние до нажатия клавиши поиска).

Я прочитал в документации, где это возможночтобы сделать это, используя OnCancelListener, однако я не уверен, как добавить это в функцию поиска.Я понимаю, что с помощью простого диалога, который вы создаете, вы можете просто сказать dialog.setOnCanelListenr(myListener).Однако, так как мой поиск не контролируется моим mapView, как мне установить это?Это вообще возможно?

1 Ответ

0 голосов
/ 14 марта 2011

Очевидно, вам следует OnDismissListener вместо OnCancelListener, поскольку последнее вызывается только для определенных событий. Использование диалогового окна поиска Android объясняет это подробно и ссылается на setOnCancelListener и друзья.

Примечание - вам нужен только Context объект для извлечения SearchManager через getSystemService и вызова setOnCancelListener:

SearchManager searches =
    (SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
searches.setOn{Cancel,Dismiss}Listener( ... );
...