2013-11-14 23 views
1

我需要做这样的事情:保存超过一串相同的内部存储

在第一Activity,我的第一个字符串保存到内部存储器中,第二Activity我的第二个字符串保存到同一内部存储器。

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

有没有解决方法?

+0

请给我们展示一些代码。 – Darkhogg

回答

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

这对我很有用,非常感谢 – Twilie2012