0

我需要知道如何检测用户触摸外部搜索。重现步骤:

点击搜索图标。这会打开标准搜索对话框。触摸外部搜索对话框。我需要detech吗?为什么?因为我有一个在搜索过程中被替换的标题。我在搜索过程中隐藏它,但在外部搜索时我需要恢复我的其他标题。那么如何检测搜索对话框之外的操作呢?

4

2 回答 2

1

添加一个TouchListener到你的整体View

final View touchView = findViewById(R.id.touchView);
    touchView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
               if(event.getX() == x && event.getY() == y) // x and y are within the search box
               {
                  //you clicked inside the search box,do nothing
               }
               if(event.getX() == outsideSearchBox && event.getY() == outsideSearchBox)
               {
                   //do your stuff
               }  
               return true;
        }
    });

你只需要确定你的搜索框所在的坐标,然后你就可以应用上面的逻辑了。

于 2012-06-22T03:01:06.767 回答
0

有一个可以使用 SearchManager 注册的 onDismiss 侦听器。这会告诉您搜索对话框何时关闭。所以我在我的活动中实现了 onDismiss() 方法。在创建中,我使用 ServiceManager 将我的活动注册为 OnDismiss 侦听器。它工作正常。

于 2012-06-23T02:07:56.223 回答