EditText与TextWatcher的奇怪行为

时间:2013-11-19 10:23:54

标签: android android-edittext textwatcher

我不知道这是一个错误还是我遗漏了什么,但它看起来像前者。 我有一个EditText我已添加TextWatcher,如下所示:

editText.addTextChangedListener(textWatcher);

并且TextWatcher已经以这种方式实现:

private final TextWatcher textWatcher = new TextWatcher() {

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        Log.d(TAG, "before editing");
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}

    @Override
    public void afterTextChanged(Editable s) {
        String text = s.toString();
        if(text.length() < 2) {
            if(listView.getVisibility() == View.VISIBLE)
                listView.setVisibility(View.INVISIBLE);
            return;
        }

        showSuggestions(text);
    }
};

现在,奇怪的是,如果我删除Log方法中的beforeTextChanged,则永远不会调用afterTextChanged方法,并且EditText不显示新的输入。另一方面,我在该方法中放置的任何代码行都使它工作正常。解释

0 个答案:

没有答案
相关问题