Android 文本更改侦听器上的 EditText 在 afterTextChanged 上调用时显示许多 Toast 消息

Android EditText on text change listener displaying many Toast messages when calling it on afterTextChanged

我在 android 中有一个注册表单 activity,我想在完成文本字段 etName 后在其中显示 Toast 消息。问题是当我继续编辑该字段时它正在显示吐司消息,我想在写完全名后也只显示一条吐司消息。下面是代码。

    etName.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

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

        }

        @Override
        public void afterTextChanged(Editable s) {
            Toast.makeText(getActivity(), "Hi, "+ etName.getText().toString() +" !", Toast.LENGTH_SHORT).show();
        }
    });

我认为你应该这样使用:

etName.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View arg0, boolean arg1) {
                Toast.makeText(getActivity(), "Hi, "+ etName.getText().toString() +" !", Toast.LENGTH_SHORT).show();
            }
        });

我觉得这个会更合适

etName.setOnFocusChangeListener(new OnFocusChangeListener() {          

    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
           Toast.makeText(getActivity(), "Hi, "+ etName.getText().toString() +" !", Toast.LENGTH_SHORT).show();
        }
    }
});