2015-02-06 72 views
0

我设法将它实现到我的代码中并让它工作,但是我的值是这样来的:10.020.0,我怎么能把一个空间在10.0和20.0之间,所以它来到10.0 20.0Android编辑文本文件并将字符串保存到共享首选项

此外,如果有人可以帮助我找出另一种方法将其保存到一个特定的sharedpreferences文件,而不是默认,所以例如统计sharedpreferences和检索表中的另一个活动的值?我已经给它一个去了,但不知道它是否以同样的方式工作,我需要sharedpreferences以与文本文件相同的方式工作。我使用文本文件,因为我可以查看该文件,而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

对于该文件,如果你想在权重之间的空间,写入文件时添加一个空格。

更改此:

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

不适编辑我的主贴给你看怎么回事,我有一个默认的共享偏好,但我希望把这些在另一只是让我知道它的工作。 – Bimal 2015-02-06 18:52:16

+0

已将我的代码添加到顶部 – Bimal 2015-02-06 19:23:04

+0

对不起,我不确定我是否完全理解您正在尝试执行的操作。如果您希望以这种方式组织您的代码,您可以拥有不同的SharedPreferences。只要您在添加和删除值时调用相同的首选项名称和添加到该首选项的相同名称的值,那就没有问题。 – sigute 2015-02-06 19:30:18