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

Android editting text file and saving strings to sharedpreferences

我已经设法将它实现到我的代码中并让它工作,但是我的值是这样的:10.020.0,我怎么能把 space 放在 10.0 和 20.0 之间,所以它变成 10.0 20.0

此外,如果有人可以帮我找出另一种方法将其保存到特定的共享首选项文件中,而不是默认的,例如统计共享首选项并在 activity 中检索另一个 activity 中的值=20=]?我尝试了一下,但不确定它是否以相同的方式工作,我需要共享首选项以与文本文件相同的方式工作。我正在使用文本文件,因为我可以查看该文件,而共享首选项我无法看到发生了什么。

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();
}

对于文件,如果你希望权重之间有spaces,在写文件的时候加一个space。

改变这个:

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

对此:

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

它将导致:10.0 20.0。需要注意的是,现在文件中最后一个权重后会有一个 space,您需要在阅读文件时考虑到它。

我觉得共享首选项没问题。要查看这些值,请添加断点并调试您的程序,或者添加日志记录并查看 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());