2011-11-09 189 views
0

当我点击一个按钮或按Enter键时,我想清除EditText。它可以很好的与按钮一起工作,但是当按下Enter时,它将清除EditText和TextView。按Enter键时清除EditText

我很感激任何帮助。谢谢。

public void onClick(View v) { 
     textViewEcho.setText(editTextInput.getText().toString()); 
     editTextInput.setText(""); 
    } 

@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if (keyCode == 66) { 
     textViewEcho.setText(editTextInput.getText().toString()); 
     editTextInput.setText(""); 
    } 
    return false; 
} 

更新:我发现安其被调用了两次,这就是为什么TextView的内容被清除,但无法弄清楚,为什么安其被调用了两次,这是Android的一个bug !!!!!?

我试过onKeyUp,它确实有效。

+0

尝试通过editTextInput.setText前** editTextInput.getText()。的toString())**分配给一个字符串变量( “”)和以后分配一个字符串值到textViewEcho。 – Ian

+0

onKey被调用两次,因为一旦其为KEY_DOWN并且一次为KEY_UP事件。 – dnkoutso

回答

1

试试这个,需要返回true。

@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if (keyCode == 66) { 
     String txt = editTextInput.getText().toString(); 
     textViewEcho.setText(txt); 
     editTextInput.setText(""); 
     return true; // return the true from here 
    } 
    return false; 
} 
+0

谢谢Pratik,返回true使EditText字段稳定(在使用它之前它曾经移动过),但仍然,当按Enter键时textView被清除。顺便说一下,无论是否将editTextInput.getText()。toString()赋给一个字符串,结果都是一样的。 – Mark

1
edittext.setOnKeyListener(new View.OnKeyListener() { 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if (keyCode == KeyEvent.KEYCODE_ENTER) 
//write the code what ever u want when u press enter    { 
edittext.setText(""); 

       } 

       return false; 
      } 
     });