Android 如何为搜索设置onCancelListener?
我正在实现一个带有搜索功能的Android 如何为搜索设置onCancelListener?,android,search,listener,android-mapview,Android,Search,Listener,Android Mapview,我正在实现一个带有搜索功能的MapView,并且必须执行一些特定操作才能使搜索正常工作(即打开搜索将查询的图标层)。我目前正在使用OnSearchRequested方法来执行这些操作。但是,如果用户取消搜索对话框,我希望将地图返回到其以前的状态(即按下搜索键之前的状态) 我在文档中读到,可以使用OnCancelListener执行此操作,但是我不确定如何将其添加到搜索功能中。我知道,通过创建一个简单的对话框,您只需说dialog.setOnCanelListenr(myListener)。但是,
MapView
,并且必须执行一些特定操作才能使搜索正常工作(即打开搜索将查询的图标层)。我目前正在使用OnSearchRequested
方法来执行这些操作。但是,如果用户取消搜索对话框,我希望将地图返回到其以前的状态(即按下搜索键之前的状态)
我在文档中读到,可以使用OnCancelListener
执行此操作,但是我不确定如何将其添加到搜索功能中。我知道,通过创建一个简单的对话框,您只需说dialog.setOnCanelListenr(myListener)
。但是,由于搜索视图不受mymapView
的控制,如何设置?甚至有可能吗?显然,您应该OnDismissListener
而不是OnCancelListener
,因为后者仅针对特定事件调用。详细解释这一点,并链接到setOnCancelListener
和friends
注意-您只需要一个上下文
对象就可以通过调用setOnCancelListener来检索SearchManager
:
SearchManager searches =
(SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
searches.setOn{Cancel,Dismiss}Listener( ... );
每当搜索对话框关闭时,OnDismissListener就会触发—即当用户点击搜索结果时,以及当用户取消退出对话框时。当用户取消对话框时,我想实现特定的行为。此外,您不能仅从mapView活动调用setOnClickListener(listener)方法,因此我正在努力研究如何实现此函数。啊,感谢您指出关于Disclease vs.cancel的内容。我已经更新了答案,并添加了从MapView中设置侦听器的建议