Here's a static wrapper I implemented to get and set properties real
easy
package gubatron.android.util;
import java.util.Arrays;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
/**
* Convenience class to get or set preference values without dealing
with Android's SharedPreferenes and the editor.
* Licensed under LGPL.
*
* @author gubatron
*
* Examples:
*
* PrefUtils.setString(key, value)
*
* String value = PrefUtils.getString(key);
* PrefUtils.getString(key, defaultValue);
*
*
*/
public final class PrefUtils {
private static SharedPreferences PREFERENCES;
private static Editor EDITOR;
static {
PREFERENCES =
GlobalVariables.APP_CONTEXT.getSharedPreferences(GlobalConstants.PREFS_FILE_NAME,
Context.MODE_PRIVATE);
EDITOR = PREFERENCES.edit();
}
public static String getString(String prefKeyName) {
return getString(prefKeyName, null);
}
public static String getString(String prefKeyName, String
defaultValue) {
String result = PREFERENCES.getString(prefKeyName,
defaultValue);
if (result == null)
return null;
return result;
}
public static byte[] getByteArray(String prefKeyName) {
return getByteArray(prefKeyName, null);
}
public static void setString(String prefKeyName, String value) {
EDITOR.putString(prefKeyName,value);
EDITOR.commit();
}
public static byte[] getByteArray(String prefKeyName, String
defaultValue) {
String result = getString(prefKeyName, defaultValue);
if (result == null)
return null;
return result.getBytes();
}
public static void setByteArray(String prefKeyName, byte[] value) {
EDITOR.putString(prefKeyName,new String(value));
EDITOR.commit();
}
public static boolean getBoolean(String prefKeyName, boolean
defaultValue) {
return PREFERENCES.getBoolean(prefKeyName, defaultValue);
}
public static void setBoolean(String prefKeyName, boolean value) {
EDITOR.putBoolean(prefKeyName,value);
EDITOR.commit();
}
public static int getInt(String prefKeyName, int defaultValue) {
return PREFERENCES.getInt(prefKeyName, defaultValue);
}
public static void setInt(String prefKeyName, int value) {
EDITOR.putInt(prefKeyName,value);
EDITOR.commit();
}
public static void clearSettings() {
EDITOR.clear();
EDITOR.commit();
}
public static void testPrefUtils() {
clearSettings();
assert(getString(GlobalConstants.PREF_KEY_UUID)==null);
byte[] macAddress =
WifiUtils.getWiFiMACAddress(GlobalVariables.APP_CONTEXT);
PrefUtils.setByteArray(GlobalConstants.PREF_KEY_UUID,
macAddress);
int macAddressChecksum =
ByteUtils.tripleByteArrayToSmallInt(ByteUtils.getByteArrayChecksum(macAddress));
byte[] fetchedMacAddress =
PrefUtils.getByteArray(GlobalConstants.PREF_KEY_UUID);
int fetchedAddressChecksum =
ByteUtils.tripleByteArrayToSmallInt(ByteUtils.getByteArrayChecksum(fetchedMacAddress));
Arrays.equals(macAddress, fetchedMacAddress);
assert(macAddressChecksum == fetchedAddressChecksum);
PrefUtils.setInt("test.int.key", Integer.MAX_VALUE);
assert(Integer.MAX_VALUE == PrefUtils.getInt("test.int.key",0));
PrefUtils.setInt("test.int.key", Integer.MIN_VALUE);
assert(Integer.MIN_VALUE == PrefUtils.getInt("test.int.key",0));
}
}
On Apr 9, 5:47 am, Kim Ras <[email protected]> wrote:
> Excellent, I looked at that and was not sure if that fas able to share
> the settings between Servises and Activities.. I will look again
> Thanks
> Kim
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
To unsubscribe, reply using "remove me" as the subject.