코드네임 :
📱 모바일프로그래밍 - 데이터 저장소 & 공유환경설정 파일로 데이터 관리하기 📱 본문
[ 공유 환경 설정 주요 메서드 ]
여기선 다 바인딩
login 실습
Project11_2 (Login 창 -> Main 창 순으로 뜸 여기선)
LoginActivity.java
onCreate 내부 }); 다음
// SharedPreferences 객체를 생성하여 (pref) "user_details"라는 이름의 저장소에 접근
// Context.MODE_PRIVATE : 저장소에 해당 어플리케이션만 접근 가능
SharedPreferences pref = getSharedPreferences("user_details", Context.MODE_PRIVATE);
// Intent 객체를 생성하여 LoginActivity에서 MainActivity로 화면을 전환할 준비
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
//SharedPreferences에(pref) username과 password 키가 저장되어 있는지 확인
if(pref.contains("username") && pref.contains("password")) {
startActivity(intent);
}
// 로그인버튼 (id: btnLogIn) 버튼 눌렀을 때
binding.btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// EditText에서 사용자가 입력한 값을 읽어와 각각 username과 password 변수에 저장
String username = binding.txtName.getText().toString();
String password = binding.txtPwd.getText().toString();
// username과 password가 비어있지 않을 경우(""와 같지 않은 경우)
// 즉, 입력값이 비어있지 않을 경우
if (!username.equals("")&& !password.equals("")){
// pref.edit() : SharedPreferences 객체(pref)의 데이터를 수정하거나 추가할 수 있도록 Editor 객체를 생성
// editor : SharedPreferences.Editor 타입의 객체
SharedPreferences.Editor editor = pref.edit();
// SharedPreferences에(pref) username과 password 저장
editor.putString("username", username);
editor.putString("password", password);
//저장을 완료
editor.commit();
Toast.makeText(getApplicationContext(), "로그인이 성공했습니다.", Toast.LENGTH_SHORT).show();
startActivity(intent);
} else{ // 입력값이 비어있다면
Toast.makeText(getApplicationContext(), "로그인이 실패했습니다.", Toast.LENGTH_SHORT).show();
}
}
});
MainActivity.자바
onCreate 메소드 내부 }); 다음
SharedPreferences preferences;
~ ~ ~
// SharedPreferences 객체를 초기화하여 "user_details"라는 이름의 저장소에 접근함
preferences = getSharedPreferences("user_details", Context.MODE_PRIVATE);
// 현재 액티비티인 Main에서 Login 액티비티로 전환하기 위한 intent이름의 Intent 객체 생성
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
// TextView(id: resultview)에 환영메시지를 설정
// SharedPreferencs(변수이름 preferences)에서 username을 가져와 메시지에 포함(값이 없을 경우 null 반환)
binding.resultView.setText("Hello,"+preferences.getString("username", null));
// 로그아웃버튼 (id: btnLogOut) 버튼 눌렀을 때
binding.btnLogOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// preferences.edit() : SharedPreferences 객체(preferences)의 데이터를 수정하거나 추가할 수 있도록 Editor 객체를 생성
// editor : SharedPreferences.Editor 타입의 객체
SharedPreferences.Editor editor= preferences.edit();
// 기록이 지워지게 (자동로그인 안되게 = 로그아웃 처리)
editor.clear(); // 모든 데이터 삭제
editor.commit(); // 변경 사항을 저장하고 적용
// 생성해 두었던 Intent 객체를 사용하여 LoginActivity로 화면을 전환
startActivity(intent);
}
});
'백엔드 > Android_JAVA' 카테고리의 다른 글
📱 프래그먼트에서 바인딩 사용하기 📱 (0) | 2024.12.12 |
---|---|
📱 모바일프로그래밍 - SQLite로 데이터 관리하기 📱 (1) | 2024.12.12 |
📱 모바일프로그래밍 - 콘텐트프로바이더 📱 (0) | 2024.12.08 |
📱 모바일프로그래밍 - 브로드캐스트 리시버 📱 (0) | 2024.12.07 |
📱 모바일프로그래밍 - 서비스 📱 (3) | 2024.12.07 |