2011-03-30 68 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