안드로이드 로그인 화면 만들기

by 조쉬 posted Sep 05, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

[10.안드로이드 로그인 화면 만들기]

오늘은 그동안 포스팅한 내용을 가지고 로그인 화면을 구현하려 합니다.
첫 번째 액티비티의 버튼을 누르면 새로운 로그인 액티비티가 띄워지고

ID와 PASSWORD를 요구합니다.
각각을 입력한 후에 다시 버튼을 누르면 처음 액티비티로 입력한 값이 전달되게 만들어 보겠습니다.

먼저 첫 번째 액티비티와 두 번째 액티비티 관계는 아래와 같습니다.

01.png



 

앞의 포스팅을 모두 숙지하신 분은 어떻게 구현해야 할지 대충 감이 잡히실거라 믿습니다.

첫 번째 액티비티는 간단하게 버튼하나만 넣어주겠습니다.

두 번째 액티비티도 간단하게 아이디 값과 비밀번호 값을 editText를 통해 얻고 버튼을 눌러 반환할 수 있게 구성해 줍니다.
2.png



3.png



xml부분은 준비가 되었으니 java파일을 수정해 보겠습니다.


이전에 설명했던 것과 같이 버튼을 눌렀을 때 새로운 액티비티를 띄우고 그 액티비티로 부터 데이터를 반환받기 위해서는 startActivityForResult()메소드에 Intent를 담아 보내주면 됩니다.

4.png



그럼 새로운 액티비티가 띄워졌으니 텍스트 editText에 입력되는 ID와 PASSWORD를 java파일에서 데이터로 받아와야겠죠?


방법은 새로운 문자열 변수안에 editText의 입력을 데이터로 불러와 넣어주면 됩니다.


우선 xml파일의 EditText를 데이터로 받아와야 하기 때문에 Java파일에서 객체로 선언해 줍니다.
5.png



findViewById()메소드안에 xml파일에서 지정해준 editText의 ID값을 파라미터로 넣어 불러오는 것입니다.
final은 차후에 onClick()메소드 안에서도 이 인스턴트들이 사용될 예정이기 때문에 추가해 준 것입니다.

이제 버튼을 눌렀을 때 EditText에 입력받은 값을 문자열로 받아오고

그 값을 Intent안에 putExtra()를 사용하여 넣어 준 후에 반환 하겠습니다.
6.png



String id = idText.getText().toString();
String pass = passwordText.getText().toString();

앞에서 선언했던 EditText객체 인스턴트로 부터 getText().toString() 메소드를 이용하여 입력된 값을 문자열로 받아 줍니다.
각각을 String형 변수 id와 pass에 저장해 주고,


 Intent intent = new Intent();
 intent.putExtra("id", id);
 intent.putExtra("pass", pass);

새로운 Intent를 선언하여 그 안에다 각각의 값을 넣어줍니다.

id라는 키값에 위에서 선언한 String변수 id를 넣고

pass라는 키값에 위에서 선언한 String변수 pass를 넣어준 것입니다.​

 setResult(RESULT_OK, intent);

이제 이 인텐트를 반환값으로 다시 돌려준 후에


 finish();
액티비티를 종료합니다.


반환값을 받기위해서는 첫 번째 액티비티에서도 작업을 해줘야 했었죠?
onActivityResult()를 사용하여 받환 값을 받아줍니다.

이 메소드는 마우스 오른쪽을 클릭하여 Generate해서 불러올 수 있었죠?


방법이 생소하신 분께서는 앞에서 포스팅한 Intent와 데이터전달을 먼저 살펴보고 와주세요.
http://blog.naver.com/rkdwnsdud555/220292204654



7.png



 String Id = data.getStringExtra("id");
 String Pass = data.getStringExtra("pass");

인텐트에 담겨온 Id값과 Pass값을 새로운 문자열 변수에 넣어 줍니다.

두 데이터 모두 String값이니 getStringExtra()를 통해 받을 수 있겠군요.

Toast.makeText(getApplicationContext(),"아이디 = " + Id + " 비밀번호 = " + Pass,  Toast.LENGTH_LONG).show();
 그럼 데이터가 잘 전달되었는지 Toast를 이용해 확인해 보겠습니다.


앞에서 포스팅했던 내용만 잘 숙지하셨다면 굉장히 간단하게 구현할 수 있는 코드입니다.


한번 결과를 확인해 보겠습니다
8.png



 9.png


TextEdit에 입력된 id와 password가 정상적으로 반환되었습니다.