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

More Related Content

Viewers also liked

Touch event 다루기
Touch event 다루기Touch event 다루기
Touch event 다루기Lee-Jong-Chan
 
코딩 생산성 높이기
코딩 생산성 높이기코딩 생산성 높이기
코딩 생산성 높이기Lee-Jong-Chan
 
04 realm 더 자세히
04   realm 더 자세히04   realm 더 자세히
04 realm 더 자세히Lee-Jong-Chan
 
03 realm 쓰기 & 질의
03   realm 쓰기 & 질의03   realm 쓰기 & 질의
03 realm 쓰기 & 질의Lee-Jong-Chan
 
T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰Lee-Jong-Chan
 
Realm Java for Android
Realm Java for AndroidRealm Java for Android
Realm Java for AndroidGokhan Arik
 
마음의 항체
마음의 항체마음의 항체
마음의 항체권수 김
 
170212 창업 지원 사업 소개(전달)
170212 창업 지원 사업 소개(전달)170212 창업 지원 사업 소개(전달)
170212 창업 지원 사업 소개(전달)SeungWon Lee
 
젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)
젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)
젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)Rotary International
 
원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독
원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독
원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독cbs15min
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례선협 이
 
Reactive Model-View-ViewModel Architecture
Reactive Model-View-ViewModel ArchitectureReactive Model-View-ViewModel Architecture
Reactive Model-View-ViewModel ArchitectureGyuwon Yi
 
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?Leonardo YongUk Kim
 
2017 Future Landscape & Public Realm Presentation - Abu Dhabi
2017 Future Landscape & Public Realm Presentation - Abu Dhabi2017 Future Landscape & Public Realm Presentation - Abu Dhabi
2017 Future Landscape & Public Realm Presentation - Abu DhabiWalter Bone, RLA ASLA
 
"FCB GRID, 광고 전략 모델"
"FCB GRID, 광고 전략 모델""FCB GRID, 광고 전략 모델"
"FCB GRID, 광고 전략 모델"BeeCanvas
 

Viewers also liked (16)

Touch event 다루기
Touch event 다루기Touch event 다루기
Touch event 다루기
 
코딩 생산성 높이기
코딩 생산성 높이기코딩 생산성 높이기
코딩 생산성 높이기
 
04 realm 더 자세히
04   realm 더 자세히04   realm 더 자세히
04 realm 더 자세히
 
03 realm 쓰기 & 질의
03   realm 쓰기 & 질의03   realm 쓰기 & 질의
03 realm 쓰기 & 질의
 
T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰T아카데미 aws 수강 리뷰
T아카데미 aws 수강 리뷰
 
Realm Java for Android
Realm Java for AndroidRealm Java for Android
Realm Java for Android
 
마음의 항체
마음의 항체마음의 항체
마음의 항체
 
170212 창업 지원 사업 소개(전달)
170212 창업 지원 사업 소개(전달)170212 창업 지원 사업 소개(전달)
170212 창업 지원 사업 소개(전달)
 
젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)
젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)
젊은 회원 영입으로 로타리클럽 활성화 (Make Your Club Vibrant by Attracting Younger People)
 
원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독
원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독
원하는 것을 얻으려면 미쳐야 한다 | 한유정 할리우드 미술총감독
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례
 
Reactive Model-View-ViewModel Architecture
Reactive Model-View-ViewModel ArchitectureReactive Model-View-ViewModel Architecture
Reactive Model-View-ViewModel Architecture
 
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
오픈 소스로 취업하기: 나는 어떻게 오픈 소스를 하다 렘 개발자가 되었나?
 
2017 Future Landscape & Public Realm Presentation - Abu Dhabi
2017 Future Landscape & Public Realm Presentation - Abu Dhabi2017 Future Landscape & Public Realm Presentation - Abu Dhabi
2017 Future Landscape & Public Realm Presentation - Abu Dhabi
 
"FCB GRID, 광고 전략 모델"
"FCB GRID, 광고 전략 모델""FCB GRID, 광고 전략 모델"
"FCB GRID, 광고 전략 모델"
 
Ховрат Тетяна
Ховрат ТетянаХоврат Тетяна
Ховрат Тетяна
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

간단한 회원가입 형태 만들기

  • 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)
  • 13. editText.setOnEditorActionListener (OnEditorActionListener listener) Public Boolean onEditorAction(TextView v, int actionId, KeyEvent event) imeOption에 설정한 것은 actionId를 통해서 전달된다. 이를 EditorInfo.[ ] 와 비교하여 구현한다.