Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为搜索设置onCancelListener?_Android_Search_Listener_Android Mapview - Fatal编程技术网

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)
。但是,由于搜索视图不受my
mapView
的控制,如何设置?甚至有可能吗?

显然,您应该
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中设置侦听器的建议