我设法将这个实现到我的代码中并使其工作,但是我的值是这样的: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();
}
答案 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());