我有一个EditText
,它应该在输入时有多行,并且在按下enter时应该有一个动作,这意味着软键盘应该消失,光标变得不可见......基本上是{{ 1}}应该失去"焦点"。
现在这已经完成并正常工作,但问题是"输入" key在EditText
。
我尝试通过将整个文本设置为EditText
来删除它,但""
为空,并添加了新行。
我试图通过将EditText
替换为'\n'
并将文本设置回来来删除它,但文本以新行开头。
's'
提前致谢。
答案 0 :(得分:0)
我知道这是一个较晚的答案,但也许可以帮助某人。
我最近遇到了这个问题,我通过在addTextChangedListener
上实现EditText
来解决了这个问题。
代码:
EditText editText = new EditText(this);
layout.addView(editText);
editText.addTextChangedListener(new TextWatcher() {
boolean ignore = false; // This is used to prevent infinite recursion in the afterTextChanged method
@Override
public void afterTextChanged(Editable arg0) {
if (ignore) return;
ignore = true;
String s = arg0.toString();
if (s.length() > 0) {
// The condition checks if the last typed char's ASCII value is equal to 10, which is the new line decimal value
if (((int)(s.charAt(s.length()-1)) == 10)) {
String newStr = s.substring(0, s.length()-1); // Removes the new line character from the string
editText.setText(newStr);
editText.setSelection(editText.length()); // Sets the text cursor to the end of the text
}
}
ignore = false;
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
也许有更好的方法来摆脱换行符,但这对我有用,而且看起来很简单。