막무가내 삽질 블로그

안드로이드 SharedPreferences 본문

Android

안드로이드 SharedPreferences

joong~ 2019. 5. 27. 04:07
728x90

 SharedPreferences 란 안드로이드 os 내에서 제공하는 저장소라고 생각 한다.

 

SharedPreferences 는 key값과 value 형태로 저장된다.

 

예를 들어 

 

key : "name" , value : "아이언맨"

key : "movie" , value : "어벤저스"

key : "where" , value : "영화관" 

 

있다고 하자.  그럼 우리는 해당 key값으로 원하는 value값을 찾을 수 있다.

 

 

 

저장

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();

PreferenceManager.getDefaultSharedPreferences(context); 는 패키지명으로 저장된다.

prefs 객체 선언 후, eidtor에 대입한다

editor 에 key, value를 넣어준 후 최종저장한다.

 

호출

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String value = prefs.getString(key, null);
return value;

String 변수 선언후 쉐어드에 저장되어 있던 값을 넣어준다.

 

 

나는 SharedPreferences 를 외부 클래스를 만들어서 사용한다.

//    public static final String PREFERENCES_NAME = "build"; // 저장 파일이름(xml)
//
//     //build 라는 저장소에 모든 값을 저장
//     //각 자료형의 DEFAULT 값을 정의함
//    public static final String DEFAULT_VALUE_STRING = "";
//    public static final boolean DEFAULT_VALUE_BOOLEAN = false;
//    public static final int DEFAULT_VALUE_INT = -1;
//    public static final long DEFAULT_VALUE_LONG = -1L;
//    public static final float DEFAULT_VALUE_FLOAT = -1F;
//
//
//     //어디서든 CONTEXT를 통해 읽고 쓰고 할수있음
//    private static SharedPreferences getPreferences(Context context){
//        return context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE);
//    }
//
//     //String 값 저장
//    public static void setString(Context context, String key, String value){
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor editor = prefs.edit();
//        editor.putString(key, value);
//        editor.commit();
//    }
//
//    //boolean 값 저장
//    public static void setBoolean(Context context, String key, boolean value){
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor editor = prefs.edit();
//        editor.putBoolean(key, value);
//        editor.commit();
//    }
//
//
//    //int 값 저장
//    public static void setInt(Context context, String key, int value){
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor editor = prefs.edit();
//        editor.putInt(key, value);
//        editor.commit();
//    }
//
//
//     // long 값 저장
//    public static void setLong(Context context, String key, long value) {
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor editor = prefs.edit();
//        editor.putLong(key, value);
//        editor.commit();
//    }
//
//
//     // float 값 저장
//    public static void setFloat(Context context, String key, float value) {
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor editor = prefs.edit();
//        editor.putFloat(key, value);
//        editor.commit();
//    }
//
//
//     // String 값 로드
//    public static String getString(Context context, String key) {
//        SharedPreferences prefs = getPreferences(context);
//        String value = prefs.getString(key, DEFAULT_VALUE_STRING);
//        return value;
//    }
//
//
//     // boolean 값 로드
//    public static Boolean getBoolean(Context context, String key){
//        SharedPreferences prefs = getPreferences(context);
//        Boolean value = prefs.getBoolean(key, DEFAULT_VALUE_BOOLEAN);
//        return value;
//    }
//
//
//     // int 값 로드
//    public static int getInt(Context context, String key) {
//        SharedPreferences prefs = getPreferences(context);
//        int value = prefs.getInt(key, DEFAULT_VALUE_INT);
//        return value;
//    }
//
//
//     // long 값 로드
//    public static long getLong(Context context, String key) {
//        SharedPreferences prefs = getPreferences(context);
//        long value = prefs.getLong(key, DEFAULT_VALUE_LONG);
//        return value;
//    }
//
//
//     // float 값 로드
//    public static float getFloat(Context context, String key) {
//        SharedPreferences prefs = getPreferences(context);
//        float value = prefs.getFloat(key, DEFAULT_VALUE_FLOAT);
//        return value;
//    }
//
//
//     // 키 값 삭제
//    public static void removeKey(Context context, String key) {
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor edit = prefs.edit();
//        edit.remove(key);
//        edit.commit();
//    }
//
//
//     // 모든 저장 데이터 삭제
//    public static void clear(Context context) {
//        SharedPreferences prefs = getPreferences(context);
//        SharedPreferences.Editor edit = prefs.edit();
//        edit.clear();
//        edit.commit();
//    }

 

저장 위치는

 

상단에 View > Tools Windows -> Device file Explorer -> /data/data/{packageName}/shared_prefs/

 

 

 

 

 

 

 

안드로이드 스터디 모집

www.notion.so/fundevjay/Android-ddf96b24265e414fb2d9e8fc5d388b80

Comments