상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
파킹통장은 비상금 통장으로 적절한가?
통장 잔액은 항상 0원으로 맞추는 것이 좋은가?
구글 플레이 잔액으로 구독 결제가 가능한가요?
구글 기프트카드와 문화상품권의 차이는 무엇인가요?
거짓말을 하는 순간 뇌에서는 어떤 일이 일어날까?
벽걸이 에어컨 청소 후 송풍 모드 꼭 돌려야 하나요?
벽걸이 에어컨 청소 고압세척 안전한가요?
벽걸이 에어컨 청소 비용이 너무 싼 업체 괜찮나요?
노인 요양원 입소 후 방 변경이 가능한가요?
노인 요양원에서 생신 행사나 프로그램도 진행하나요?
대상포진 예방접종은 이미 대상포진을 앓은 사람도 필요한가요?
대상포진 예방접종은 스테로이드 복용 중에도 가능한가요?
Previous
Next
수정하기 - SharedPreferences를 사용하여 사용자 설정을 저장하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`SharedPreferences`는 Android 애플리케이션에서 간단한 데이터를 저장하고 관리하는 데 사용되는 API입니다. 주로 사용자 설정, 애플리케이션 상태, 간단한 데이터 등을 저장하는 데 적합합니다. `SharedPreferences`는 키-값 쌍으로 데이터를 저장하며, 이 데이터는 애플리케이션이 종료되더라도 유지됩니다. 아래에서는 `SharedPreferences`를 사용하여 사용자 설정을 저장하는 방법에 대해 자세히 설명하겠습니다. 1. SharedPreferences 객체 얻기 `SharedPreferences` 객체를 얻기 위해서는 `getSharedPreferences()` 메서드를 사용합니다. 이 메서드는 두 개의 매개변수를 받습니다: 파일 이름과 모드입니다. 일반적으로 모드는 `MODE_PRIVATE`로 설정하여 해당 파일에 대한 접근을 애플리케이션 내에서만 허용합니다. ```java SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", MODE_PRIVATE); ``` 2. 데이터 저장하기 `SharedPreferences`에 데이터를 저장하기 위해서는 `SharedPreferences.Editor` 객체를 사용합니다. `Editor` 객체를 통해 데이터를 추가하고, 마지막에 `apply()` 또는 `commit()` 메서드를 호출하여 변경 사항을 저장합니다. ```java SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("<a href='https://sangseek.com/sangseeks/user/ko'>user</a>name", "JohnDoe"); // 문자열 저장 editor.putInt("age", 30); // 정수 저장 editor.putBoolean("isPremiumUser", true); // 불리언 저장 editor.apply(); // 비동기적으로 저장 ``` `apply()` 메서드는 비동기적으로 데이터를 저장하며, UI 스레드를 차단하지 않습니다. 반면 `commit()` 메서드는 동기적으로 저장하며, 성공 여부를 boolean 값으로 반환합니다. 3. 데이터 읽기 저장된 데이터를 읽기 위해서는 `getString()`, `getInt()`, `getBoolean()` 등의 메서드를 사용합니다. 이 메서드들은 기본값을 매개변수로 받아, 해당 키에 대한 값이 없을 경우 기본값을 반환합니다. ```java String username = sharedPreferences.getString("username", "defaultUser"); int age = sharedPreferences.getInt("age", 0); boolean isPremiumUser = sharedPreferences.getBoolean("isPremiumUser", false); ``` 4. 데이터 삭제 저장된 데이터를 삭제하려면 `remove()` 메서드를 사용하여 특정 키의 데이터를 삭제할 수 있습니다. 모든 데이터를 삭제하려면 `clear()` 메서드를 사용할 수 있습니다. ```java editor.remove("username"); // 특정 키 삭제 editor.clear(); // 모든 데이터 삭제 editor.apply(); // 변경 사항 저장 ``` 5. 데이터 변경 감지 `SharedPreferences`는 데이터 변경을 감지할 수 있는 리스너를 제공합니다. `OnSharedPreferenceChangeListener`를 구현하여 데이터가 변경될 때마다 특정 작업을 수행할 수 있습니다. ```java SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { // 데이터가 변경되었을 때 수행할 작업 if (key.equals("username")) { String newUsername = sharedPreferences.getString(key, "defaultUser"); // 새로운 사용자 이름을 사용하여 UI 업데이트 } } }; // 리스너 등록 sharedPreferences.registerOnSharedPreferenceChangeListener(listener); ``` 6. 주의사항 - `SharedPreferences`는 간단한 데이터 저장에 적합하지만, 대량의 데이터나 복잡한 데이터 구조를 저장하는 데는 적합하지 않습니다. 이러한 경우 SQLite 데이터베이스나 Room 라이브러리를 사용하는 것이 좋습니다. - `SharedPreferences`는 기본적으로 비동기적으로 작동하지만, `commit()` 메서드를 사용할 경우 UI 스레드를 차단할 수 있으므로 주의해야 합니다. 결론 `SharedPreferences`는 Android 애플리케이션에서 사용자 설정을 간편하게 저장하고 관리할 수 있는 유용한 도구입니다. 위의 방법을 통해 사용자 설정을 저장하고, 읽고, 삭제하며, 변경 사항을 감지할 수 있습니다. 이를 통해 사용자 경험을 개선하고 애플리케이션의 상태를 효과적으로 관리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기