清除多行EditText

时间:2011-01-25 14:27:14

标签: android android-edittext

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

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

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

仅清除可见字符 - 在字段中保留换行符(然后必须手动删除)。

有没有办法'完全'清除多行EditText字段? (或者至少 - 有人知道为什么以上不起作用吗?)

5 个答案:

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

            }
        });