清除多行EditText

我正在尝试清除OnEditorActionListener.onEditorAction方法内的多行EditText字段。

但使用任何明显的方式,即

((EditText) view).getEditableText().clear(); ((EditText) view).getEditableText().clearSpans(); ((EditText) view).setText(""); 

只清除可见的字符 – 在字段中留下换行符(然后必须手动删除)。

有没有办法“完全”清除多行EditText字段? (或者至less是否有人知道为什么上述不行?)

Solutions Collecting From Web of "清除多行EditText"

解决了(睡了好几分钟之后) – 在清除文本之后添加了换行符,因为onEditorAction方法实现返回false (出于其他原因)。

返回true表示“进入”已被处理/消耗,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; } }); 

我没有IDE在这里testing,但你可以试试看:

  • ((EditText) view).clearComposingText()这是TextView的inheritance方法
  • 不是很优雅,但也许function: setSingleLine = true ,然后再次false 。 也许有用,直到有人能提供更好的东西…

有一个setMaxLines的方法:

 yourEditText.getEditableText().clear(); yourEditText.setMaxLines(1); 

也许我感觉有点太幸运了,但是:

 ((EditText) view).setText(null); 

当我的应用程序有一个清晰的button时,我使用了这个

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