SharedPrefernces store list

 

public static boolean saveArray() {
     SharedPrefernces sp=SharedPrefernces.getDefaultSharedPrefernces(this);
     SharedPrefernces.Editor mEdit1= sp.edit();
     mEdit1.putInt("Status_size",sKey.size()); /*sKey is an array*/ 

    for(int i=0;i<sKey.size();i++) {
        mEdit1.remove("Status_" + i);
        mEdit1.putString("Status_" + i, sKey.get(i));  
    }

    return mEdit1.commit();     
}

 

public static void loadArray(Context mContext) {  
    Shared Preferences mSharedPreference1=PreferenceManager.getDefaultSharedPreferences(mContext);
    sKey.clear();
    int size = mSharedPreference1.getInt("Status_size", 0);  

    for(int i=0;i<size;i++) {
        sKey.add(mSharedPreference1.getString("Status_" + i, null));  

    }
}

 

 

---------------------------------------------------------

PreferenceActivity会自动存储相应的值
public class FmRadioSettings extends PreferenceActivity implements OnPreferenceClickListener,
        OnSharedPreferenceChangeListener {

    public void onCreate(Bundle b) {
        super.onCreate(b);

        Log.v(TAG, "onCreate()");

        /* Initialize local references to all preferences for GUI purposes. */
        addPreferencesFromResource(R.xml.fm_radio_preferences);

        Preference p = getPreferenceScreen().findPreference(FM_PREF_AUDIO_MODE);
        p.setOnPreferenceClickListener(new CyclePreferenceClickListener());
        p = getPreferenceScreen().findPreference(FM_PREF_AUDIO_PATH);
        p.setOnPreferenceClickListener(new CyclePreferenceClickListener());

        RDSModePreference = getPreferenceScreen().findPreference(FM_PREF_RDS_ENABLED);
        RDSModePreference.setOnPreferenceClickListener(this);
        AFPreference = getPreferenceScreen().findPreference(FM_PREF_AF_ENABLED);

        if (((ListPreference) RDSModePreference).getValue().equals(FM_RDS_MODE_OFF_VALUE)) {
            AFPreference.setEnabled(false);
        } else {
            AFPreference.setEnabled(true);
        }
    }

    // @Override
    protected void onResume() {
        super.onResume();
        // Set up a listener whenever a key changes
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    // @Override
    protected void onPause() {
        super.onPause();
        // Unregister the listener the PreferenceActivity goes to background
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(
                this);
    }

    // @Override
    public boolean onPreferenceClick(Preference preference) {
        if (preference.getKey().equals(FM_PREF_RDS_ENABLED)) {
            Log.i(TAG, "key:" + preference.getKey());
            Log.i(TAG, "value:" + (String) ((ListPreference) preference).getValue());
            return true;
        }
        return false;
    }

    // @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        if (key.equals(FM_PREF_RDS_ENABLED)) {
            String result = sharedPreferences.getString(FM_PREF_RDS_ENABLED, "NULL");
            if (result != "NULL") {
                if (result.equals(FM_RDS_MODE_OFF_VALUE))
                    AFPreference.setEnabled(false);
                else
                    AFPreference.setEnabled(true);
            }
        }
    }
}

 

public class FmRadio extends Activity implements IRadioViewRxTouchEventHandler,
        OnSharedPreferenceChangeListener, IFmProxyCallback {

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (V) { Log.d(TAG, "onSharedPreferenceChanged key " + key); } if (key.equals(FmRadioSettings.FM_PREF_AUDIO_MODE)) { updateAudioMode(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_AUDIO_PATH)) { updateAudioPath(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_SCAN_STEP)) { updateScanStep(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_RDS_ENABLED)) { updateRdsMode(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_AF_ENABLED)) { updateRdsMode(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_WORLD_REGION)) { updateWorldRegion(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_DEEMPHASIS)) { updateWorldRegion(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_LIVE_POLLING)) { updateLivePolling(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_LIVE_POLL_INT)) { updateLivePolling(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_NFL_MODE)) { updateNflEstimate(sharedPreferences); } else if (key.equals(FmRadioSettings.FM_PREF_SNR_THRESHOLD)) { updateSetSnrThreshold(sharedPreferences); } } private void updateAudioPath(SharedPreferences sp) { if (V) { Log.d(TAG, "updateAudioPath()"); } /* Extract preferences and request these settings. */ mPendingAudioPath = Integer .parseInt(mSharedPrefs.getString(FmRadioSettings.FM_PREF_AUDIO_PATH, String.valueOf(FmProxy.AUDIO_PATH_WIRE_HEADSET))); if (V) { Log.d(TAG, "Sending audio path (" + Integer.toString(mPendingAudioPath) + ")"); } if (null != mFmReceiver) { audioPathUpdatePending = (FmProxy.STATUS_OK != mFmReceiver .setAudioPath(mPendingAudioPath)); Log.v(TAG, "audioPathUpdatePending == " + audioPathUpdatePending); } } }

 

posted @ 2015-04-22 09:25  牧 天  阅读(201)  评论(0)    收藏  举报