나는 EditText가 있으며 사용자가 시간을 hh:mm
형식으로 입력해야한다고 가정합니다. 사용자가 시간을 입력하면 세미콜론을 편집 텍스트에 자동으로 추가하려고합니다. 편집 텍스트가 두 개의 숫자로 구성되어 있는지 확인하는 onKeyDown 메소드와 같은 것으로 생각됩니다.이 경우 세미콜론을 추가하십시오. 이것이 가능한가? 그렇다면 어떻게?Android 스튜디오에서 텍스트를 편집하여 키를 눌렀을 때
답변
정확하게 필요한 것을 수행하는 TextWatcher
을 사용해야합니다. 기본적으로 3 가지 방법이 있습니다 : beforeTextChanged()
, onTextChanged()
, afterTextChanged()
.
처음 두 개의 메서드는 EditText 내부의 텍스트를 변경하는 데 사용되지 않고 텍스트 변경 내용을 추적하는 데 사용됩니다. 마지막 하나 인은 텍스트를 수정하고 스타일을 지정할 수있는 방법입니다. 코드는 다음과 같을 것이다 : [? 안드로이드에 TextWatcher 클래스를 사용하는 방법]
String text = "";
yourEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
// work with editable here and add :
String newValue = editable.toString();
if (newValue.length() > text.length()) {
text = editable.toString();
if (text.length() == 2) {
yourEditText.setText(text + ":");
}
}
else if (newValue.length() < text.length()) {
text = editable.toString();
}
}
});
큰 활약을했습니다. "13시 30 분"을 입력하고 그것을 삭제하려면 세미콜론을 삭제할 때 텍스트가 변경된 후 두 개의 숫자가 있기 때문에 세미콜론을 다시 인쇄합니다. 나는 이것을 찾으려고했지만 아무 것도 찾지 못했다. if (keyCode! = KeyEvent.KEYCODE_DEL) –
@SimonAndersson 나는 내 대답을 업데이트했다. 그것을 신중히 들여다 보아라. – Marat
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,int count,int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,int before, int count) {
if(s.length() == 2)
editText.setText(S+":");
if(s.length() == 5) //(hh:mm) length is 5
editText.setEnabled(false); //it accept only 5 char.
}
});
- 1. 텍스트를 편집하여 키를 누를 때 늦게 응답했습니다
- 2. @ 키를 눌렀을 때 감지
- 3. Shift 키를 눌렀을 때 감지
- 4. 키를 눌렀을 때 기능을 중지
- 5. 키를 눌렀을 때 텍스트 인쇄
- 6. 눌렀을 때 Jbutton에 텍스트를 설정하십시오.
- 7. 키를 눌렀을 때 안드로이드 액티비티가 실행됩니다.
- 8. Asp.NET의 UpdatePanel Enter 키를 눌렀을 때
- 9. 다른 키를 눌렀을 때 키를 시뮬레이션하는 방법은 무엇입니까?
- 10. 검색 키를 눌렀을 때 활동을 여는 방법 android
- 11. Android 홈 키를 눌렀을 때 배경 음악을 중지하십시오.
- 12. 파이 게임 - 눌렀을 때가 아니라 키를 눌렀을 때 BOOL을 토글하려고합니다.
- 13. Android - 버튼을 눌렀을 때 텍스트를 변경하는 방법은 무엇입니까?
- 14. 키를 눌렀을 때만 키를 눌렀을 때만 함수를 호출하십시오.
- 15. 이스케이프 키를 눌렀을 때 이미지를 닫는 방법?
- 16. Tab 키를 눌렀을 때 winform을 잡는 방법
- 17. "enter 키를 눌렀을 때"쓰는 방법은 무엇입니까?
- 18. 키를 눌렀을 때 대기 시간이 짧음
- 19. Telerik 키를 눌렀을 때 두 radgrids로드
- 20. Tab 키를 눌렀을 때 아래로 이동
- 21. 키를 눌렀을 때 감지 objective-C++
- 22. 특정 키를 눌렀을 때 jQuery 자동 완성
- 23. F5 키를 눌렀을 때 감지하고 새로 고침
- 24. Esc 키를 눌렀을 때 JDialog를 닫는 방법.
- 25. 키보드 키를 눌렀을 때 버튼이 눌려져 있습니다
- 26. 뒤로 키를 눌렀을 때 기능로드를 멈추는 방법
- 27. 시뮬레이션 : 키를 눌렀을 때 div에 초점 상태
- 28. 입력 키를 눌렀을 때 양식이 진행되기를 원합니다
- 29. mfc 응용 프로그램에서 키보드의 키를 눌렀을 때
- 30. (ios sdk)에서 키를 눌렀을 때 듣기
의 사용 가능한 복제 (http://stackoverflow.com/questions/8543449/how-to-use- the-textwatcher-class-in-android) –