android 中 TextChanged 之前的空指针异常

Null pointer exception before TextChanged in android

它给了我空指针异常 我已经初始化添加的 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 Pointer,你基本上在以下行添加一个null对象

editText.addTextChangedListener(mSearchTw);

你在初始化之前添加它。

要修复,只需在启动后移动即可,即在mSearchTw = new TextWatcher() {...};

之后

那是因为那些语句被执行了sequentially

正如@user8 给出的答案,您可以传递 class.You 的空对象,只需像这样更改

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