android中TextChanged之前的空指针异常

android中TextChanged之前的空指针异常,android,android-textwatcher,Android,Android Textwatcher,它给了我空指针异常,我已经初始化添加了textwatcher,但我仍然有这个异常。我是不是忘了什么东西。 感谢您的帮助 EditText editText = (EditText) dialogList.findViewById(R.id.search); editText.addTextChangedListener(mSearchTw); mSearchTw = new TextWatcher() { @Override public void onTextCha

它给了我空指针异常,我已经初始化添加了textwatcher,但我仍然有这个异常。我是不是忘了什么东西。
感谢您的帮助

    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) {
    }
};

没有正确启动

您可以使用editText.getText().toString()进行检查
如果出现错误,则意味着无法正确启动

当然,它将为您提供空指针,您基本上会在下一行添加一个
Null
对象

editText.addTextChangedListener(mSearchTw);
您可以在初始化它之前添加它

要修复,只需在启动后移动它,即在
mSearchTw=newtextWatcher(){…}之后


这是因为这些语句是被执行的

当@user8给出答案时,您可以传递类的null对象。您只需这样更改

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);

你为什么这样做,你可以这样做,谢谢我已经接受了答案,但我会投赞成票。谢谢你的帮助:)谢谢它帮我一把:)