2015-02-06 2 views
0

Ive удалось реализовать это в моем коде и заставить его работать, однако мои значения приближаются следующим образом: 10.020.0, как я могу разместить пробел между 10.0 и 20.0, чтобы он приходит 10.0 20.0Редактирование текстового файла Android и сохранение строк в sharedpreferences

Кроме того, если кто-то может помочь мне найти альтернативный способ сохранить это в конкретном файле sharedpreferences, а не по умолчанию, то есть, например, статистику sharedpreferences и получить значения в другом действии в таблице? Ive дал ему пойти, но я не уверен, что он работает одинаково, мне нужны общие действия для работы так же, как и текстовый файл. Я использую текстовый файл, так как я могу просмотреть файл, тогда как sharedpreferences im не может видеть, что происходит.

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, чтобы увидеть значения в журналах - просмотр логарифма обычно появляется автоматически, но если это не так, это будет зависеть от того, используя 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

+0

Добавили мой код наверху – Bimal

+0

Извините, я не уверен, полностью ли понимаю, что вы пытаетесь сделать. У вас могут быть разные SharedPreferences, если вы предпочитаете организовывать свой код таким образом. Пока вы вызываете одно и то же имя предпочтения и одно и то же имя, добавленное к этому предпочтению, когда вы добавляете и удаляете значения, это нормально. – sigute

Смежные вопросы