Android编辑文本文件并将字符串保存到共享首选项

时间:2015-02-06 17:49:42

标签: android arrays string sharedpreferences text-files

我设法将这个实现到我的代码中并使其工作,但是我的值是这样的:10.020.0,我怎么能在10.0和20.0之间放置一个空间所以10.0 10.0.0

此外,如果有人可以帮我找出另一种方法将其保存到特定的sharedpreferences文件中,而不是默认值,那么例如stats sharedpreferences并检索表中另一个活动的值?我已经给它一个去,但我不确定它是否以相同的方式工作,我需要共享偏好以与文本文件相同的方式工作。我使用文本文件,因为我可以查看文件而共享偏好我无法看到最新情况。

SharedPreference尝试:

public void AddStringSavedPreference(){

    SharedPreferences settings = this.getSharedPreferences("StatsPreference", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    Set<String> statsStrings = settings.getStringSet("statsStrings", new HashSet<String>());

    statsStrings.add(Double.toString(weight));

    editor.putStringSet("statsStrings", statsStrings);
    editor.commit();
}

1 个答案:

答案 0 :(得分:1)

对于文件,如果您希望权重之间有空格,请在写入文件时添加空格。

改变这个:

osw.write(Double.toString(weight));

到此:

osw.write(Double.toString(weight) + " ");

它将导致:10.0 20.0。需要注意的是,现在文件中的最后一个重量之后会有一个空格,并且在您阅读文件时需要考虑它。

共享偏好对我来说没问题。要查看值,可以添加断点并调试程序,或添加日志记录并查看Logcat以查看日志中的值 - logcat视图通常会自动显示,但如果没有,则取决于是否您正在使用Android Studio或Eclipse如何打开它。它也可以通过命令行看到。这可能会有所帮助:https://developer.android.com/tools/debugging/debugging-studio.html对于日志记录示例,请使用您的代码:

SharedPreferences settings = this.getSharedPreferences("StatsPreference", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
Set<String> statsStrings = settings.getStringSet("statsStrings", new HashSet<String>());

statsStrings.add(Double.toString(weight));

// log takes a tag as first value, which can be any value, usually application name
Log.d("MyApplication", "Adding following values: " + statsStrings.toString());

editor.putStringSet("statsStrings", statsStrings);
editor.commit();

检索值。同样,添加日志将有助于查看值:

SharedPreferences settings = this.getSharedPreferences("StatsPreference", Context.MODE_PRIVATE);
Set<String> statsStrings = settings.getStringSet("statsStrings", new HashSet<String>());
Log.d("MyApplication", "Retrieved following values: " + statsStrings.toString());