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); } } }

浙公网安备 33010602011771号