2. 추가할 기능들
• EditText를 이용하여 간단한 회원가입 형태를 만든다.
• 소프트 키보드에서 다음 입력칸으로 넘어갈 수 있도록 설정한
다.
• E-mail형식으로 회원가입 했는지 확인한다.
• 패스워드는 6글자 이상인지 확인한다.
- 아닐 경우 빨간색으로 표시, 체크하는 것은 동일한지를 확인
• 회원 가입 버튼을 구현
4. 1. 회원가입 형태(틀) 만들기
TextView
EditText
TextView
EditText
TextView
EditText
최대한 간단한 화면 구성
EditText는 입력 형태에 맞추어
inputType을 설정
Button
5. 2. 키보드로 다음 EditText로 넘어가기
아무런 설정을 하지 않고 EditText에 Focus를 주었을 때
6. 2. 키보드로 다음 EditText로 넘어가기
특별한 설정을 하고 EditText에 Focus를 주었을 때
7. 방법 1
- imeOption을 ActionNext로 설정
방법 2
- nextFocusDown을 Focus를 줄 EditText의 id로 설정
*주의 사항*
두 방법 모두 singleLine=“true”로 설정해주어야 한다.
싱글라인이 아닐경우(멀티라인) 엔터키가 나오게 된다.
2. 키보드로 다음 EditText로 넘어가기
8. 방법 2 – nextFocusDown을 사용시 주의사항
nextFocusDown을 다음 EditText의 id로 설정할 때
[ + ] 를 반드시 넣어주어야 한다.
대신 다음 EditText의 id 속성에는 +가 없어도 된다.
9. 3. E-mail 형식을 제대로 입력했는지 확인
- 정규 표현식 : 특정 패턴의 문자열 형식을 말하는 것?
ex) E-mail, 숫자만, 문자만, 패스워드(숫자,문자,특수문자
를 섞었는지)
- 정규 표현식으로 입력했는지 확인하는 방법
-> Boolean matches(String s)
-> 반환값이 Boolean이므로 if-else문을 사용해서 E-mail형식
이 맞을 경우와 틀릴 경우를 따지고 다음 동작을 수행
10. 4. 패스워드는 6글자 이상인지 확인(실시간)
- 실시간으로 입력되는 글자를 확인하는 방법
-> TextWatcher를 사용한다.
editText.addTextChangedListener(TextWatcher textWatcher)
- TextWatcher안에 오버라이드 메소드는 3가지
그 중 onTextChanged를 사용
11. onTextChanged(CharSequence s, int start, int count, int after)
editText.onTextChanged 안에서는 EditText에 입력되는 문자열을
s를 통하여 얻는다.
-> s.toString
editText.getText().toString()을 해버리면 한글 같은 경우는
“가” 로 읽혀지는 것이 아닌 “ㄱㅏ”로 읽혀지게 된다.
때문에 s.toString을 활용하여 length나 equals를 사용한다.
12. 5. 회원가입 버튼 구현
회원 가입 버튼을 클릭 시에 E-mail 형식이 정상적으로 맞았는지
를 확인하는 부분을 처리한다.
확인 버튼 대신 EditText에서 버튼 역할을 하는 코드를 구현이 가
능하다.
앞에서 했던 imeOption을 Action Send로 설정한다.
-> imeOption에 대한 리스너는 onEditorActionListener를 사용
editText.setOnEditorActionListener(OnEditorActionListener listener)