我需要在用户在TextView字段上键入内容时将按钮动态设置为“可见”或“消失”。通过使用下面的语句,当按下Enter键时,我已经能够完成此操作,但是如果在用户键入或删除文本内容时按钮变为可见或立即消失,那将是非常不错的选择。有什么建议吗?
binding.textField.setOnEditorActionListener { v, actionId, event ->
if (v.text.toString().trim().isEmpty()){
binding.button.visibility = View.GONE
} else{
binding.button.visibility = View.VISIBLE
}
return@setOnEditorActionListener true
}
谢谢您的关注!罗德里戈·托马兹(Rodrigo Tomaz)。
您可以在EditText上使用addTextChangedListener
。
喜欢这个:
binding.textField.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (editable.toString().trim().isEmpty()){
binding.button.visibility = View.GONE
} else{
binding.button.visibility = View.VISIBLE
}
}
});
希望有帮助:)
您应该将textchangelistner添加到您的editext并在文本更改时隐藏按钮
binding.textField.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
binding.button.visibility = View.GONE
}
});