0

物理キーボードから KeyEvents を取得する方法は知っていますが、ソフト キーボードから取得するにはどうすればよいですか?

このコードは、ソフト キーボードでは機能しません。

editText.setOnKeyListener(new View.OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        Toast.makeText(this, Integer.toString(keyCode), Toast.LENGTH_SHORT)
        return false;
    }
});
4

2 に答える 2

1

多分あなたは必要ですTextChangedListener(または代替方法としてそれを使用してください):

TextWatcher textWatcher = new TextWatcher() {
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }
    public void onTextChanged(CharSequence s, int start, int before,int count) {        
    }
    public void afterTextChanged(Editable s) {                   
    }       
};
editText.addTextChangedListener(textWatcher);
于 2013-10-02T15:42:56.970 に答える
0

これを試して

public void onCreate(Bundle savedInstanceState) {
    ...
    etField =(EditText)findViewById(R.id.your_edit_text);

    etField.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
             // register the text when "enter" is pressed
             if (event.getAction() == KeyEvent.ACTION_DOWN 
             || event.getAction() == KeyEvent.ACTION_UP ) {
             int timesPressed = event.getRepeatCount();
             //do something
        }
    });
}

また

EditText.addTextChangedListener(new TextWatcher(){
   //do something
}) 
于 2013-10-02T15:40:42.197 に答える