2011-11-09 16 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; 
} 

アップデート:私はonKeyがTextViewのの内容がクリアされている理由です、2回呼び出されますが、onKeyが二回と呼ばれる理由を把握することはできませんことが判明、これは、Androidのバグです!!!!!?

代わりにonKeyUpを試しましたが、うまくいきます。

+0

editTextInput.setText( "" の前の文字列変数に** editTextInput.getText()のtoString())**を割り当てることで試してください)以降textViewEchoにその文字列値を割り当てます。 – Ian

+0

onKeyは、KEY_DOWNに1回、KEY_UPに1回ために2回呼び出されます。 – 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ありがとう、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; 
      } 
     });