代码之家  ›  专栏  ›  技术社区  ›  1binary0

文本更改监听器上的Android EditText在TextChanged之后调用它时显示许多Toast消息

  •  0
  • 1binary0  · 技术社区  · 10 年前

    我在android中有一个注册表单活动,我想在完成文本字段etName后显示Toast消息。问题是,当我继续编辑字段时,它显示的是toast消息,我只想显示一个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();
            }
        });
    
    2 回复  |  直到 10 年前
        1
  •  1
  •   Karthika PB    10 年前

    我认为你应该这样使用:

    etName.setOnFocusChangeListener(new OnFocusChangeListener() {
                @Override
                public void onFocusChange(View arg0, boolean arg1) {
                    Toast.makeText(getActivity(), "Hi, "+ etName.getText().toString() +" !", Toast.LENGTH_SHORT).show();
                }
            });
    
        2
  •  1
  •   Karol Å»ygłowicz    10 年前

    我想这会更合适

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