안드로이드 어플에서 userID, userPW 정보를 자동 저장해두고 다음부터는 편리하게 접속하는 기능이 뭘까?
이런 자동로그인 처리를 가능하게 해주는 것이 Preference 이다.
간단하게 내 폰 어딘가에 userID, userPW, 자동로그인 체크 정보를 기록하는 것이다.
Preference 저장 장소 : data/data/패키지명/Shared_prefs 라는 곳에 키 - 값 쌍으로 저장된다.
Shared Preference 는 데이터의 저장보다는 UI 상태를 저장하는데 사용된다.
저장하기 |
SharedPreferences settings = getSharedPreferences("PrefName", MODE_PRIVATE); |
불러오기 |
SharedPreferences settings = getSharedPreferences("PrefName", MODE_PRIVATE); |
getSharedPreferences("settings", Activity.MODE_PRIVATE); // MODE_PRIVATE : 읽기 쓰기 가능
getSharedPreferences("settings", 0); 으로 해도 같은 의미이다.
Preference 정보 저장하는 방법
public SharedPreferences settings; // 정의
String loginID;
String loginPW;
CheckBox autologin;
Boolean loginChecked;
EditText etId;
EditText etPw;
etId = (EditText) findViewById(R.id.login_id_edit);
etPw = (EditText) findViewById(R.id.login_pw_edit);
autologin = (CheckBox) findViewById(R.id.autologinchk);
loginID = etId.getText().toString().trim();
loginPW = etPw.getText().toString().trim();
public void onStop(){
// 어플리케이션이 화면에서 사라질때
super.onStop();
// 자동 로그인이 체크되어 있고, 로그인에 성공했으면 폰에 자동로그인 정보 저장
if (autologin.isChecked()) {
settings = getSharedPreferences("settings",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("loginID", loginID);
editor.putString("loginPW", loginPW);
editor.putBoolean("LoginChecked", true);
editor.commit();
} else {
// 자동 로그인 체크가 해제되면 폰에 저장된 정보 모두 삭제
settings = getSharedPreferences("settings", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.clear(); // 모든 정보 해제
editor.commit();
}
}
Preference 정보 가져오는 방법
public SharedPreferences settings;
String loginID;
String loginPW;
CheckBox autologin;
Boolean loginChecked;
EditText etId;
EditText etPw;
etId = (EditText) findViewById(R.id.login_id_edit);
etPw = (EditText) findViewById(R.id.login_pw_edit);
autologin = (CheckBox) findViewById(R.id.autologinchk);
loginID = etId.getText().toString().trim();
loginPW = etPw.getText().toString().trim();
settings = getSharedPreferences("settings", Activity.MODE_PRIVATE);
// 자동 로그인을 설정했다면 앱이 다시 시작하는 경우에도 입력했던 값이 유지되도록 하기 위한 코드
loginChecked = settings.getBoolean("LoginChecked", false);
if (loginChecked) {
etId.setText(settings.getString("loginID", ""));
etPw.setText(settings.getString("loginPW", ""));
autologin.setChecked(true);
}
참고하면 도움이 될 내용
'안드로이드 > Android SQLite' 카테고리의 다른 글
안드로이드 메모 어플 소스 RecyclerView + SQLite 활용 (0) | 2019.09.26 |
---|---|
android 메모 어플 소스 ListView + SQLite 활용 (0) | 2019.09.24 |
안드로이드 HashMap 예제 - SQLite (0) | 2017.07.18 |
Android SQLite Database 지식 (0) | 2017.06.02 |
Android Studio SQLite - SQLiteOpenHelper 를 사용하는 방법 (0) | 2017.05.29 |