SharedPreferencesをシステムプロファイルとして使用

3291 ワード

package com.lazy.upup.data;

import com.lazy.upup.util.Constant;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;

/**
 * 
 * <P> [  ]           </P>
 * <P> [  ] </P>
 * <P> [  ] </P>
 * <P> [  ] android 2.1 </P>
 * <P> Copyright(c) 《    》 -- UP.UP 2011 </P>
 *
 * @author Lazy
 * @version ver 1.0
 * @2011-4-14   09:28:10
 */
public class UpUpData {

	private static UpUpData upUpData;
	private SharedPreferences.Editor editor;
	private SharedPreferences sp;
	
	private UpUpData(Context context){
		//       :MODE_PRIVATE(     ),MODE_WORLD_READABLE(       ),MODE_WORLD_WRITEABLE(      )
		SharedPreferences localSharedPreferences = ((Activity)context).getSharedPreferences(Constant.UPUP_DATE, Activity.MODE_PRIVATE);
	    this.sp = localSharedPreferences;
	    editor = this.sp.edit();
	    //     ,        ,          
	    String sms = getString(Constant.DATA_KEY_SMS);
	    if("".equals(sms)){
	    	writeDefData();
	    }
	}
	
	/**
	 *       (         )
	 */
	private void writeDefData(){
		writeString(Constant.DATA_KEY_SMS,Constant.DATA_KEY_SMS_DEF);
	}
	
	/**
	 *       
	 * @param context
	 * @return
	 */
	public static UpUpData getInstance(Context context){
		if(upUpData==null){
			upUpData = new UpUpData(context);
		}
		return upUpData;
	}
	
	/**
	 *     
	 * @param key
	 * @return
	 */
	public boolean getBoolean(String key){
		return sp.getBoolean(key, false);
	}
	
	public int getInt(String key){
		return sp.getInt(key, 0);
	}
	
	public float getFloat(String key){
		return sp.getFloat(key, 0F);
	}
	
	public long getLong(String key){
		return sp.getLong(key, 0);
	}
	
	public String getString(String key){
		return sp.getString(key, "");
	}
	
	/**
	 *     
	 * @param key
	 */
	public void remove(String key){
		editor.remove(key);
		editor.commit();
	}

	/**
	 *     
	 * @param paramString
	 * @param paramBoolean
	 */
	public void writeBoolean(String key, boolean value){
		editor.putBoolean(key, value);
		editor.commit();
	}

	public void writeInt(String key, int value){
		editor.putInt(key, value);
		editor.commit();
	}
	
	public void writeLong(String key, long value){
		editor.putLong(key, value);
		editor.commit();
	}
	
	public void writeFloat(String key, float value){
		editor.putFloat(key, value);
		editor.commit();
	}
	
	public void writeString(String key, String value){
		editor.putString(key, value);
		editor.commit();
	}
	
	/**
	 *     
	 */
	public void destroy(){
		sp = null;
	    editor = null;
	    upUpData = null;
	}
}