将多个字符串保存到同一内部存储中

时间:2013-11-14 13:27:54

标签: android storage internal

我需要做这样的事情:

在第一个Activity中,我将第一个字符串保存到内部存储区,然后在第二个Activity中将第二个字符串保存到同一个内部存储区。

我有问题,当我尝试保存第二个字符串时,内部存储始终只保留最后一个字符串,之前的字符串消失。

有没有解决方案?

1 个答案:

答案 0 :(得分:1)

内部存储基于键值系统。所以这是正常的,对于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);        
}