안드로이드 개발 팁 #24 - EditText 뷰에 텍스트 입력하고 0.5초 후 액션 설정
EditText에 ID나 검색어 등과 같은 텍스트를 입력하고 0.5초 후 자동으로 어떤 액션을 실행하는 코드를 만들어 보고 싶었습니다. 스팀 API 샘플 코드를 만들면서 필요했던 것인데요. RxJava, RxAndroid 라이브러리를 활용하였습니다.
당시 코드는 아래와 같이 작성했습니다. 당시 사용했던 언어는 자바였습니다.
RxTextView.textChangeEvents(editTextExample)
.debounce(500, TimeUnit.MILLISECONDS)
.distinctUntilChanged()
.filter(account -> account.text().toString().length() > 2)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(event -> {
// 액션 실행
});
- debounce 메소드: 타이핑하고 0.5초 지나면 액션 실행 (그 사이에 추가 타이핑하면 0.5초 타이머 재설정)
- distinctUntilChanged(): 최근 실행했던 텍스트와 이후 입력한 텍스트가 동일하면 액션 실행 안함
- filter: 입력한 텍스트의 길이가 2 이하이면 액션 실행 안함
지난 안드로이드 개발 팁
- #23 - Uri 객체로부터 읽은 파라메터에서 '+' 문자가 ' '로 바뀌어 있는 문제
- #22 - RxJava 활용하여 몇초 후 코드 실행
- #21 - 맥북 아이클라우드로 프로젝트 복사 후 빌드 안 되는 문제
- #20 - 툴바 정의 방법 (1) 타이틀 및 배경색 설정
- #19 - Index corrupted 오류
- #18 - 오래된 프로젝트의 build.gradle 파일 수정
- #17 - 뷰 바인딩 적용된 프래그먼트에 데이터 바인딩 적용 후 빌드시 발생하는 오류
- #16 - 특정 일이 속하는 주의 모든 날짜를 배열로 구하는 방법
- #15 - RecyclerView에 리스트를 로딩한 후 처리할 일 작성
- #14 - RecyclerView 뷰에서 항목 클릭시 뷰가 깜빡이는 문제
- #13 - 공통으로 사용할 색상 리소스 만들고 뷰에 적용
- #12 - 코틀린 언어 변환시 추가로 수정할 build.gradle 파일들
- #11 - 리스트/배열로부터 찾을 원소의 위치 읽기
- #10 - 앱의 다크 모드 진입 막는 방법
- #9 - 데이터 바인딩/뷰 바인딩 사용하지 않을 경우 자체적으로 만드는 Views 클래스
- #8 - TextView에 linear gradient color 적용하기
- #7 - 다이얼 화면 연결하기 위해 Activity 클래스의 확장 메소드 작성
- #6 - 웹 브라우저를 여는 확장 메소드 작성
- #5 - HTML 적용된 TextView에서 링크 클릭은 어떻게 구현?
- #4 - RxJava의 Observable, Single 객체의 기본 설정 수행 메소드 정의하기
- #3 - 특정 화면 이동시 다른 화면 모두 닫기
- #2 - HTML 이스케이핑 적용된 문자 풀어주기
- #1 - TextView로 HTML 내용 보여주기
Posted through the AVLE Dapp (https://avle.io)
Posted through the AVLE Dapp (https://avle.io)
Posted through the AVLE Dapp (https://avle.io)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.