2011-03-30 82 views
4

我有一個旨在用於搜索目的的編輯文本。我已經加入EditText TextChangeListener問題

searchET.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       // TODO Auto-generated method stub    
      } 

      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 
       // TODO Auto-generated method stub    
      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       // TODO Auto-generated method stub 
       //intent to another page where i show my search result 
      } 
     }); 

的問題是: 當我給一個搜索字符串如:「堡壘」我知道在接下來的頁面所需的結果。但是當我按下後退按鈕時,它在第一次點擊時不會移動到上一頁。我將不得不按四次按鈕才能轉到上一頁。這是因爲我的搜索字符串長度爲4,每次在edittext中輸入一個值時,都會調用textchangelistener。我該如何解決這個問題?請回復。提前致謝。

+0

當您鍵入字母'f',並且它移動到下一頁時,如何輸入下一個字母'o' ? – rajath 2011-03-30 06:11:00

+0

當我們在一段時間內輸入單詞時,我們完成了輸入意圖後被調用。但是如果我們在打字的時候延遲,那麼它會在那個時候進入下一頁。你也可以嘗試一下。 – Mathew 2011-03-30 06:21:29

回答

2

根據您的需要,您可以根據某些條件轉到下一頁。例如,啓動計時器,如果在計時器到期之前調用afterTextChanged,則重置計時器。或者,您可以在用戶明確指出他已完成輸入單詞的位置有一個「搜索」按鈕。

如果您可以分享所需的行爲,可以建議更好的替代方案。

+1

我按照你說的添加了按鈕,並給了點擊事件。它也降低了複雜性:)謝謝... – Mathew 2011-03-30 07:04:47

0

實際上,當您想要確定文本何時結束時,沒有包含addTextChangedListener的要點。要改進UI,您可以將此按鈕添加到您的編輯文本中。請參考:edittext with view