[Java/Android] SharedPreferences 유틸리티 클래스 만들기

안드로이드상에서는 데이터를 저장하기 위해서 다양한 방법을 사용할 수 있습니다. 그중에서도 가장 손쉽게 데이터를 보관할 수 있는 방법으로는 SharedPreferences를 이용하는 방법이 있습니다.

원래는 어플리케이션의 설정을 저장하고 읽어오기 위해서 태어난것 같지만 이외에도 다양한 방법으로 사용될 수 있습니다. 하지만 퍼포먼스는 그다지 좋지 않은것 같습니다. 퍼포먼스를 따져봐야 하는 경우에는 SQLite를 추천합니다.
[code java]public class SharedPreference

{
/**
* <pre>
* String 데이터를 저장합니다.
* </pre>
*
* @param context 컨텍스트
* @param key 키
* @param value 값
*/
public static void putSharedPreference
(Context context, String key, String value)
{
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);

SharedPreferences.Editor editor = prefs.edit();

editor.putString(key, value);
editor.commit();
}

/**
* <pre>
* Boolean 데이터를 저장합니다.
* </pre>
*
* @param context 컨텍스트
* @param key 키
* @param value 값
*/
public static void putSharedPreference
(Context context, String key, boolean value)
{
SharedPreferences prefs =

PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();

editor.putBoolean(key, value);
editor.commit();
}

/**
* <pre>
* Integer 데이터를 저장합니다.
* </pre>
*
* @param context 컨텍스트
* @param key 키
* @param value 값
*/
public static void putSharedPreference
(Context context, String key, int value)
{
SharedPreferences prefs =

PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();

editor.putInt(key, value);
editor.commit();
}

/**
* <pre>
* String 데이터를 읽어옵니다.
* </pre>
*
* @param context 컨텍스트
* @param key 키
* @return 읽어온 값, 값이 없을 경우 null이 반환된다.
*/
public static String getSharedPreference
(Context context, String key)
{
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);

return prefs.getString(key, null);
}

/**
* <pre>
* Boolean 데이터를 읽어옵니다.
* </pre>
*
* @param context 컨텍스트
* @param key 키
* @return 읽어온 값, 값이 없을 경우 false가 반환된다.
*/
public static boolean getBooleanSharedPreference
(Context context, String key)
{
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);

return prefs.getBoolean(key, false);
}

/**
* <pre>
* Int 데이터를 읽어옵니다.
* </pre>
*
* @param context 컨텍스트
* @param key 키
* @return 읽어온 값, 값이 없을 경우 0이 반환된다.
*/
public static int getIntSharedPreference
(Context context, String key)
{
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);

return prefs.getInt(key, 0);
}
}[/code]

데이터를 저장하기 위해서는 putSharedPreference메서드를 사용하면 되고 값을 읽어올때는 get~~~SharedPreference를 이용하여 읽어오면 됩니다.