EditText文本更改监听器问题

4
我有一个用于搜索目的的编辑文本框。我已经加入了 </p>
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
            }
        });

问题是: 当我输入一个搜索字符串,例如:“fort”,我会在下一页中得到所需的结果。但是当我按下后退按钮时,它不会在第一次点击时移动到上一页。我必须按下四次后退按钮才能回到上一页。这是因为我的搜索字符串长度为4,并且每次将值输入到edittext中时,都会调用textchangelistener。我该如何解决这个问题?请回复。谢谢。

当您在键入字母“f”并跳转到下一页时,如何输入下一个字母“o”? - Rajath
当我们连续输入单词时,完成输入后意图会被调用。但是如果我们在输入时给出延迟,它会在那个时候跳转到下一页。您也可以尝试并查看相同的结果。 - Anju
2个回答

2
根据您的需要,您可以根据某些条件转到下一页。例如,启动计时器,如果在计时器到期之前调用了afterTextChanged,则重置计时器。或者,您可以有一个名为“搜索”的按钮,在用户明确指出他已经输入完单词后再进行搜索。
如果您能分享所需行为,则可以提供更好的替代方案。

1
我按照你说的添加了按钮并给予了点击事件。这样也减少了复杂度 :) 谢谢... - Anju

0

实际上,当您想决定文本何时结束时,包含addTextChangedListener没有意义。为了改善UI,您可以将此按钮添加到编辑文本中。请参考:带视图的EditText


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接