android中使用setOnKeyListener響應輸入事件


在界面中添加一個EditText輸入框控件,需要在輸入時響應輸入事件,可以使用setOnKeyListener() 事件:

        final EditText editText = findViewById(R.id.editText1);
        editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Toast.makeText(MainActivity.this, editText.getText().toString(), Toast.LENGTH_SHORT).show();
                return false;
            }
        });

在執行的時候,發現每次都會響應兩次事件,原來是每次按下及松開時都會執行一次,對應Action的ACTION_DOWN, ACTION_UP,針對這種情況,修改一下代碼,改成只在松開時執行:

        final EditText editText = findViewById(R.id.editText1);
        editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if(event.getAction()==KeyEvent.ACTION_UP) {
                    Toast.makeText(MainActivity.this, editText.getText().toString(), Toast.LENGTH_SHORT).show();
                } return false;
            }
        });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM