我正在尝试清除OnEditorActionListener.onEditorAction方法中的多行EditText字段。
但是使用任何明显的方式,即
((EditText) view).getEditableText().clear();
((EditText) view).getEditableText().clearSpans();
((EditText) view).setText("");
仅清除可见字符 - 在字段中保留换行符(然后必须手动删除)。
有没有办法'完全'清除多行EditText字段? (或者至少 - 有人知道为什么以上不起作用吗?)
答案 0 :(得分:7)
解决了(在一夜好眠之后的一分钟内) - 在清除文本后添加了换行符,因为onEditorAction方法实现正在返回false
(由于其他原因)。
返回true
表示已经处理/使用了'enter',并且clear()的行为符合预期:
edittext.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view,int actionId,KeyEvent event) {
post(view.getText().toString());
((EditText) view).getEditableText().clear();
return true;
}
});
答案 1 :(得分:0)
我这里没有IDE来测试,但你可以尝试一下:
((EditText) view).clearComposingText()
它是TextView setSingleLine =
true ,然后 false 。也许有人可以提供更好的东西...... 答案 2 :(得分:0)
setMaxLines有一种方式:
yourEditText.getEditableText().clear();
yourEditText.setMaxLines(1);
答案 3 :(得分:0)
也许我感觉有点太幸运了,但是:
((EditText) view).setText(null);
答案 4 :(得分:0)
我在我的应用程序上有一个清除按钮时使用了这个
Button clearButton = (Button)findViewById(R.id.clear);
clearButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
number = (EditText) findViewById(R.id.text_reading);
number.setText("");
}
});