Preferences 를 이용한 자동 로그인
SharedPreferences
데이터를 간단하게 저장할 수 있는 안드로이드에서 제공하는 클래스이다.
/src/com/sysdocu/study/MainActivity.java
package com.example.example; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{ EditText et_id, et_pw; CheckBox chk_auto; Button btn_login;
SharedPreferences setting; SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
et_id = (EditText) findViewById(R.id.et_id); et_pw = (EditText) findViewById(R.id.et_pw); chk_auto = (CheckBox) findViewById(R.id.chk_auto); btn_login = (Button) findViewById(R.id.btn_login);
setting = getSharedPreferences("setting", 0); editor= setting.edit();
if(setting.getBoolean("chk_auto", false)){ et_id.setText(setting.getString("ID", "")); et_pw.setText(setting.getString("PW", "")); chk_auto.setChecked(true); }
btn_login.setOnClickListener(this); } @Override public void onClick(View v) { if(chk_auto.isChecked()){ Toast.makeText(this, "로그인", Toast.LENGTH_SHORT).show(); String ID = et_id.getText().toString(); String PW = et_pw.getText().toString();
editor.putString("ID", ID); editor.putString("PW", PW); editor.putBoolean("chk_auto", true); editor.commit(); }else{ editor.clear(); editor.commit(); } } } |
/res/layout/activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity2" >
<TextView android:id="@+id/txt_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:text="ID를 입력하세요" />
<EditText android:id="@+id/et_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/txt_id" android:layout_centerHorizontal="true" android:ems="10" />
<TextView android:id="@+id/txt_pw" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/et_id" android:layout_marginTop="30dp" android:layout_centerHorizontal="true" android:text="비밀번호를 입력하세요" />
<EditText android:id="@+id/et_pw" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/txt_pw" android:layout_centerHorizontal="true" android:ems="10" >
<requestFocus /> </EditText>
<CheckBox android:id="@+id/chk_auto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/et_pw" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:text="저장하기" />
<Button android:id="@+id/btn_login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/chk_auto" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:text="로그인" />
</RelativeLayout> |
[출처] 현's 블로그 (http://hyunssssss.tistory.com/307)
* '아이디, 패스워드 저장' 체크박스 체크 후 재로그인 할때는 저장된 값으로 비교함수 (if 문) 를 이용하여 로그인 페이지를 skip 하는방법을 사용하면 좋을것 같습니다. ('아이디, 패스워드 저장' 해제는 어플 내 환경설정에서)
'프로그래밍 > Android (Java)' 카테고리의 다른 글
videoview streaming android example (0) | 2015.10.06 |
---|---|
어플에서 SMS(문자) 전송 하기 (0) | 2015.06.18 |
안드로이드 화면방향 설정하기 (0) | 2015.04.21 |
AVD 생성시 CPU "No system images installed for this target." (0) | 2015.04.16 |
./adb 실행 오류 (0) | 2015.04.15 |