Исключение нулевого указателя перед TextChanged в Android

Это дает мне исключение нулевого указателя, я инициализировал добавленный текстовый наблюдатель, но все же у меня есть это исключение. Я что-то забыл?
Приветствуется любая помощь.

    EditText editText = (EditText) dialogList.findViewById(R.id.search);
editText.addTextChangedListener(mSearchTw);

mSearchTw = new TextWatcher() {

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

    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,int after) {
        pokeAdapter.getFilter().filter(s);
    }

    @Override
    public void afterTextChanged(Editable s) {
    }
};

person Asad AndyDev    schedule 13.08.2016    source источник
comment
Почему вы это делаете, вы можете сделать это просто так « title = «как использовать событие edittext для события textchanged, когда я нажимаю номер»> stackoverflow.com/questions/7432083/   -  person Shailesh    schedule 13.08.2016


Ответы (3)


Когда @user8 дает ответ, вы можете передать нулевой объект класса. Вы просто меняете это так

EditText editText = (EditText)findViewById(R.id.editText);
        TextWatcher mSearchTw  = new TextWatcher() {

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

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,int after) {
                pokeAdapter.getFilter().filter(s);
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        };

        editText.addTextChangedListener(mSearchTw);
person Shailesh    schedule 13.08.2016

Не инициировано должным образом,

Вы можете проверить, используя editText.getText().toString() Если из-за ошибки, это означает, что она не инициируется должным образом.

person Yogesh Rathi    schedule 13.08.2016
comment
Спасибо, я уже принял ответ, но я буду голосовать. Спасибо за вашу помощь :) - person Asad AndyDev; 16.08.2016

Конечно, это даст вам нулевой указатель, вы в основном добавляете объект null в следующую строку

editText.addTextChangedListener(mSearchTw);

Вы добавляете его перед инициализацией.

Чтобы исправить, просто переместите его после инициации, т.е. после mSearchTw = new TextWatcher() {...};

Это связано с тем, что эти операторы выполняются последовательно.

person Dimitar    schedule 13.08.2016
comment
Спасибо мне помогло :) - person Asad AndyDev; 16.08.2016