完璧にeditTextを解決してキーボードを傍受して車に戻って2回の解決方法を実行します

1203 ワード

開発中にキーボードのリターンキーを傍受することがあるかもしれませんが、ネット上で一つの方法を探しました.
 private OnKeyListener onKey = new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
		login();
            }
            return false;
        }
    };
edtTxtPassword.setOnKeyListener(onKey);

2回実行されたことがわかりますが、もちろん理由は簡単です.引用文onkeyイベントにはdownとupイベントが含まれているので、判断を加えるだけでいいです.
具体的なコードは以下の通りです.
   private OnKeyListener onKey = new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER
                    && event.getAction() == KeyEvent.ACTION_UP) {
                myLogin();
            }
            return false;
        }
    };

これで完璧に解決する.もちろん、setOnEditorActionListenerの傍受も同様の原理です.
EditTextのImeOptionsプロパティを異なる値に設定すると、Enterキーに異なる文字やパターンが表示されるようになります.
ActionNone:Enterキーを押して、次の行のactionGo:Go、actionSearch:1つの拡大鏡actionSend:SendactionNext:NextactionDone:Doneにカーソルを合わせ、最後のテキスト入力ボックスでなくてもソフトキーボードを非表示にします