2012-06-22 68 views
0

我需要知道如何檢測用戶觸摸外部搜索。重現步驟:Android:用戶觸摸外部搜索時如何刷新屏幕?

單擊搜索圖標。這帶來了標準的搜索對話框。觸摸外部搜索對話框。我需要檢測這個?爲什麼?因爲我有一個在搜索過程中被替換的標題。我在搜索過程中將其隱藏,但在外部搜索時,我需要恢復其他標題。那麼如何檢測搜索對話框之外的操作?

回答

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; 
     } 
    }); 

你只需要確定你的搜索框的座標,那麼你可以申請上述邏輯。

0

有一個onDismiss偵聽器可以使用SearchManager進行註冊。這會告訴你何時關閉搜索對話框。所以我在我的活動中實現了onDismiss()方法。在創建中,我使用ServiceManager將我的活動註冊爲OnDismiss偵聽器。它工作正常。

相關問題