オンスクリーンキーボードの「OK」キーをクリックして操作したいと思っています。そのために私は、テキストフィールドにのKeyListenerを追加しました:なぜKeyListener.onKeyが2回トリガーするのですか?
textField = (EditText) view.findViewById(R.id.text_field);
textField.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
boolean handled = false;
if (keyCode == KeyEvent.KEYCODE_ENTER) {
okPressed(view);
handled = true;
}
return handled;
}
});
そしてokPressed方法で、私は内容を確認しています:
private void okPressed(View view) {
String value = textField.getText().toString().trim();
if (value.equals("")) {
Toast.makeText(view.getContext(), "Error", Toast.LENGTH_SHORT).show();
return;
}
}
をそして今、私のテキストフィールドが空でない場合のために、すべてうまく動作します。しかし、フィールドにテキストが含まれていない場合、私のokPressedメソッドは2回実行されます。しかし、なぜ?
KeyEvent's documentationパー
私はACTION_UPでソリューションを選択しましたが、正常に動作します! – altralaser