1

私はこのようなことをする必要があります:

最初Activityに、最初の文字列を内部ストレージActivityに保存し、2 番目に 2 番目の文字列を同じ内部ストレージに保存します。

問題があります。2 番目の文字列を保存しようとすると、内部ストレージは常に最後の文字列のみを保持し、前の文字列は消えます。

解決策はありますか?

4

1 に答える 1

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);        
}
于 2013-11-14T13:29:13.067 に答える