마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

edittext 포커스 이동에 관한 질문입니다.

0 추천
로그인 화면에서, 비밀번호를 입력하는 부분을 만들려고 합니다.

목적은

1. '비밀번호' 값이 일정 길이(6자) 이하일 경우 다른 edittext(비밀번호 재입력, 이름 등)를

     눌렀을 때 포커스를 다시 '비밀번호'로 이동하며 토스트 메시지를 띄우는 것,

2. '비밀번호 확인'값이 '비밀번호'값과 일치하지 않을 경우 '비밀번호'와 '비밀번호 확인'을 초기화하고

     포커스를 '비밀번호'로 이동

등 크게 2가지입니다.

 

처음에는 포커스 이벤트로 포커스를 잃었을 때 작업을 처리했는데, 포커스는 정상적으로 돌아오지만

정작 입력은 넘어간 edittext에서 되는 현상이 있었고, 손가락으로 터치시 커서 잔상마저 남는 경우가 있었습니다.

 

포커스를 얻을 때 조건은 정상적으로 작동은 되지만 각 뷰에 대해 전부 작업해줘야 해서 비효율적이라고 판단했습니다.

이때 역시 손가락 터치 후 커서 잔상이 남아 있었습니다.

 

검색 후 찾아본 터치 이벤트 역시 위와 마찬가지 현상이 발생했고, 모든 버튼에 대해 터치 조건을 잡아줘야 해서

이것 또한 비효율적인 것 같아 넣지 않았습니다.

 

제가 생각한 알고리즘이 잘못된 것인지 메소드를 이상하게 사용한건지...

은둔고수분들의 조언 한 마디 부탁드립니다.

이벤트 발생시 사용한 코드는(ex - 비밀번호 입력 후 포커스 잃을 때)

 if(비밀번호 길이<6)

 {  토스트 메시지

     비밀번호.setText("");

     비밀번호 확인.clearFocus();

     비밀번호.requestFocus();

}
익명사용자 님이 2015년 7월 14일 질문

1개의 답변

0 추천
 
채택된 답변
delay 를 약간 줘보세요

비번.postDelayed(new Runnable() {

비번.requestFocus();

}, 300);
aucd29 (218,390 포인트) 님이 2015년 7월 14일 답변
...