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();
}
}
});
我在 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();
}
}
});