Android:当用户触摸外部搜索时如何刷新屏幕?

时间:2012-06-22 02:41:21

标签: android mobile

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

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

2 个答案:

答案 0 :(得分: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;
        }
    });

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

答案 1 :(得分:0)

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