2014-09-18 4 views
0

Android 애플리케이션에서 키보드의 키를 누를 때마다 논리를 수행하고 싶습니다. 예를 들어, "마술 문구"를 입력했는지 평가하고 싶습니다. .대부분의 키보드 키를 눌렀을 때 onKeyUp이 실행되지 않음

이렇게하려면 내 액티비티에서 onKeyUp 메서드를 무시하고 토스트를 발사하여 발사되었는지 테스트 해 보았습니다.

@Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     Toast toast = Toast.makeText(this, "Key Down", Toast.LENGTH_LONG); 
     toast.setGravity(Gravity.TOP, 0, 0); 
     toast.show(); 
     return super.onKeyUp(keyCode, event); 
    } 

문제는 키보드에서 숫자 나 문자를 누르면 토스트가 표시되지 않는다는 것입니다. backspace을 눌렀을 때만 나타납니다. 왜 이런거야?

모든 키를 사용하려면 어떻게해야합니까?

+0

시도 또는 ankur-Singhal이가없는'onKeyPress' @ onKeyDown에 –

+0

:

여기에 조금 토스트가 자리수로 표시합니다 내 간단한 코드입니다 – Raphi

답변

1

TextChangedListener을 내 EditText 필드에 추가하여 해결했습니다. 때 onKeyPress와

  EditText passcodeInput = (EditText) findViewById(R.id.passcodeInput); 
      passcodeInput.addTextChangedListener(new TextWatcher() { 
       @Override 
       public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { 

       } 

       @Override 
       public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { 

       } 

       @Override 
       public void afterTextChanged(Editable editable) { 
        digitsPressed++; 
        Toast.makeText(Passcode.this, Integer.toString(digitsPressed), Toast.LENGTH_LONG).show(); 
       } 
      });