1
我需要做这样的事情:保存超过一串相同的内部存储
在第一Activity
,我的第一个字符串保存到内部存储器中,第二Activity
我的第二个字符串保存到同一内部存储器。
我有问题,当我尝试保存第二个字符串时,内部存储器始终只保留最后一个字符串,而以前消失。
有没有解决方法?
我需要做这样的事情:保存超过一串相同的内部存储
在第一Activity
,我的第一个字符串保存到内部存储器中,第二Activity
我的第二个字符串保存到同一内部存储器。
我有问题,当我尝试保存第二个字符串时,内部存储器始终只保留最后一个字符串,而以前消失。
有没有解决方法?
内部存储基于键值系统。所以这是正常的,对于1个键,只有1个可用值。您可以像这样以某种方式追加新值:
private static final String SETTINGS_NAME = "my_settings.cfg";
private static final String DELIM = ";";
public void settingsAppendValue(Context context, String key, String value)
{
SharedPreferences settings = context.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE);
String actualValue = settings.getString(key, "");
Editor editor = settings.edit();
actualValue += (actualValue.length() > 0 ? DELIM : "") + value;
editor.putString(key, actualValue);
editor.commit();
}
public String[] settingsGetValues(Context context, String key)
{
SharedPreferences settings = context.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE);
return settings.getString(key, "").split(DELIM);
}
这对我很有用,非常感谢 – Twilie2012
请给我们展示一些代码。 – Darkhogg