我在一个编辑文本上使用textChangedListener来显示/隐藏一个浮动的动作按钮。
一切都按预期工作。如果编辑文本不为空,则显示 fab,如果为空,则隐藏 fab。
但是我注意到,在使用退格时,要删除输入的文本,删除第一个空格会触发隐藏fab,然后快速fab显示,因为editText不为空。
我环顾四周,没有看到任何关于这方面的信息。所以我一定做错了什么,但我不确定是什么。
下面是我的实现。我试过了,都给了我相同的行为if(editText.getText(). toString(). isempty())
if(editText.getText().toString().length()==0))
如果(editText.getText). toString(). equals("")
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d(TAG, "TEXT CHANGED onTextChanged" + editText.getText().toString());
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
Log.d(TAG, "TEXT CHANGED beforeTextChanged" + editText.getText().toString());
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
Log.d(TAG, "TEXT CHANGED afterTextChanged" + editText.getText().toString());
// s = editText.getText().toString(); editText.getText().toString()
if (s.toString().isEmpty()) {
fab.setVisibility(View.INVISIBLE);
fab.setAnimation(slideDownAnim);
slideDownAnim.start();
}else{
fab.setVisibility(View.VISIBLE);
fab.setAnimation(slideUpAnim);
slideUpAnim.start();
}
// TODO Auto-generated method stub
}
});
预先感谢
更新**** 找到答案,在这里解决了我的问题。文本监视程序事件被多次触发
试试这个
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d(TAG, "TEXT CHANGED onTextChanged" + editText.getText().toString());
if (s.toString().isEmpty()) {
fab.setVisibility(View.INVISIBLE);
fab.setAnimation(slideDownAnim);
slideDownAnim.start();
}else{
fab.setVisibility(View.VISIBLE);
fab.setAnimation(slideUpAnim);
slideUpAnim.start();
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
Log.d(TAG, "TEXT CHANGED beforeTextChanged" + editText.getText().toString());
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
Log.d(TAG, "TEXT CHANGED afterTextChanged" + editText.getText().toString());
// s = editText.getText().toString(); editText.getText().toString()
// TODO Auto-generated method stub
}
});
有人能提出什么解决办法吗?
我想在我的中添加一种,当用户更改的值时,应用程序会在控制台上打印一些内容。 我搜索了一下,发现了以下非常类似的问题:将Listener值更改为JTextField 上述问题的答案非常清晰有效,但不幸的是,它只对(而不是)有用,因为它说您应该像这样使用DocumentListener: 但在JavaFX的文本字段中,您无法执行此操作。所以解决办法是什么? (用代码描述可能非常好,但如果不可能,任何提
我需要一些帮助。我有一个s的。 我想检查值是否发生了变化。如果是,我想知道它是哪个文本字段。我知道我可以使用侦听器来执行此操作,但这只适用于单个侦听器。 我希望它在数组上工作并确定哪个文本字段已更改。 提前感谢!
我正在开发一个Android聊天应用程序。一切运作良好,但除了一件事;我想设置一个布局的可见性消失,然后设置一个不同的布局可见时,用户开始输入编辑文本,就像在WhatsApp上实现的。但是我似乎想不明白。任何帮助都将不胜感激 基本上,我想做的是设置一个布局的可见性,该布局包含一个图像按钮,用于将图像上载到gone,然后显示一个布局,该布局包含一个图像按钮,用于在用户开始键入时将edittext中的
我必须取编辑文本的值并将其除以1.21....错误在哪里 错误:
当编辑文本上的回车键被按下时,我试图简单地向listview添加一些内容。我在按钮上也有一个点击监听器,它将调用相同的函数将单词添加到listview。按钮工作正常,直到我添加了文本监视程序。现在,如果我调用的函数在监听器中,如果我按回车键或按下按钮,整个应用程序就会崩溃。如果我从文本监视程序中删除类,那么如果我按下回车键,应用程序不会崩溃,但如果我按下按钮,它会崩溃。有什么想法吗?我已经很久没用