안녕하세요 ! 초보개발자 입니다.
이 블로그는 개인 공부 정리용 블로그 입니다.
혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.
그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.
그럼 시작하도록 하겠습니다.
[안드로이드] 자동로그인 기능 구현
오늘은 레이아웃을 익힌 것을 바탕으로 로그인 화면을 만들고 자동로그인 기능을 넣어보도록 하겠습니다.
먼저 간단한 로그인 화면을 만들어 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:focusableInTouchMode="true" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.donghyun.fpm.LoginActivity"> <EditText android:layout_width="300dp" android:layout_height="50dp" android:id="@+id/id" android:hint="ID" android:inputType="textUri" android:layout_marginTop="148dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <EditText android:layout_width="300dp" android:layout_height="50dp" android:id="@+id/password" android:inputType="textPassword" android:hint="Password" android:layout_below="@+id/id" android:layout_alignStart="@+id/id" /> <CheckBox android:text="자동 로그인" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/password" android:layout_centerHorizontal="true" android:layout_marginTop="14dp" android:id="@+id/autoLoginCheck" /> <Button android:layout_width="150dp" android:layout_height="wrap_content" android:id="@+id/loginButton" android:text="로그인" android:layout_marginTop="32dp" android:layout_below="@+id/autoLoginCheck" android:layout_centerHorizontal="true" /> </RelativeLayout> | cs |
화면은 다음과 같이 출력이 됩니다.
id와 password를 입력하고 로그인 버튼을 누르면 다음화면으로 넘어 갑니다. 자동 로그인 테스트를 위해 id가 "초보" password가 "1234" 일 경우에만 다음 화면으로 넘어가게 하였습니다. 그리고 자동 로그인 부분을 체크 하고 로그인 하였을 경우 어플 재 실행시 id,password 입력 없이 로그인이 가능하도록 코딩을 하겠습니다.
먼저 자동로그인 기능을 구현하기 위해서는 우리가 입력한 아이디나 비밀번호를 어딘가에 저장을 해놓아야 어플이 재실행 되었을때 다시 불러 올 수 있습니다. 이럴경우 안드로이드에서 제공하는 SharedPreferences를 사용합니다. SharedPreferences를 사용하는 선언하는 방법은 다음과 같습니다.
SharedPreferences loginInformation =getSharedPreferences("setting",0);
getSharedPreferences("setting",0); 에서 "setting" 는 파일이름 이라고 생각하시면 됩니다.
그리고 SharedPreferences.Editor 를 이용하여 id,password를 setting 에 저장 해보도록 하겠습니다.
SharedPreferences.Editor editor= loginInformation.edit();
저장할 때는 (Key, Value) 형태로 저장 하게 됩니다.
editor.putString("id", 입력한 아이디);
editor.putString("password" 입력한 패스워드);
editor.commit();
중요한 부분은 editor.commit(); 를 해야만 저장이 됩니다.
저장된 값을 불러 올 때는 저장한 key값을 이용하여 다음과 같이 불러 옵니다.
loginInformation.getstring("id","");
loginInformation.getstring("password","");
어플 실행 화면은 다음과 같습니다.
자동 로그인 체크 없이 로그인 하였을 경우 앱을 재실행시에 자동 로그인이 되지 않습니다. 그리고 체크하고 로그인 후 재실행 하면 아이디 비번 입력없이 로그인이 되시는 것을 확인 할 수 있습니다. 로그인 후 Main화면에서 로그아웃 버튼을 클릭하여 앱 종료시에 재실행 하면 로그아웃을 하였기 때문에 다시 아이디 비번 입력을 요구 합니다. 종료 버튼을 누르셨다면 아이디 비번 입력없이 자동 로그인이 되는 것을 확인 할 수 있습니다.
해당 프로그램 소스를 원하시면 댓글 달아 주세요.
오늘은 SharedPreferences 를 이용하여 자동 로그인 기능을 구현하였습니다. 수고하셨습니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 레이아웃 인플레이션(Layout Inflation) (2) | 2017.05.04 |
---|---|
[안드로이드] 카메라로 사진찍어서 이미지뷰에 보여주기 (4) | 2017.05.02 |
[안드로이드] ScrollView(스크롤 뷰) (1) | 2017.04.29 |
[안드로이드] 레이아웃(3) - TableLayout (1) | 2017.04.28 |
[안드로이드] 레이아웃(2) - RelativeLayout(상대 레이아웃) (0) | 2017.04.27 |