EditText에서 키 이벤트 처리

EditText에서는 OnKeyListener로 back키나 Enter키 입력은 받을 수 있는데
문자열같은 일반적인 키입력은 이벤트로 넘어오지 않습니다.

이런 이벤트를 받으려면 TextWatcher라는 것을 써야하더군요.

간단히 TextWatcher를 구현해서 EditText에 addTextChangedListener()를 해주면 됩니다.

TextWatcher textWatcher = new TextWatcher() {

	@Override
	public void beforeTextChanged(CharSequence s, int start, int count, int after) {
		// 텍스트가 변경되기전 입력한 내용에 대해
		// s는 변경할 수 없음
	}

	@Override
	public void onTextChanged(CharSequence s, int start, int before, int count) {
		// 텍스트를 변경된 후 변경 사항과 함께
		// s는 변경할 수 없음
	}

	@Override
	public void afterTextChanged(Editable s) {
		 // 텍스트가 변경된 후. 변경 사항은 알 수 없음
		// s는 변경 가능. 하지만 위 함수들이 다시 콜백됨을 유의
	}

};

editText.addTextChangedListener(textWatcher); // EditText인 editText에 textWatcher를 핸들러로 등록

FacebookTwitterGoogle+