Форум программистов, компьютерный форум CyberForum.ru

SharedPreferences. Чудеса при putString/getString - Android

Войти
Регистрация
Восстановить пароль
 
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 414
20.06.2014, 16:53     SharedPreferences. Чудеса при putString/getString #1
Java
1
2
3
4
5
6
7
8
9
10
11
static SharedPreferences mSettings = PreferenceManager.getDefaultSharedPreferences(this);
 
String value_1 = "trade1.db";
 
//записываем
SharedPreferences.Editor editor = mSettings.edit();
editor.putString("test", value_1);
editor.apply();
 
//считываем
String value_2 = mSettings.getString("test", "");
В итоге если смотреть отладчиком, то значения value_1="trade1.db" и value_2="trade1.db".
Первое значение отладик описывает как char[9], а второе значение как char[16]. При этом видно, что начиная с 10-го символа идут смволы "\u0000".
То ли неверно записывается, то ли неверно считывается.
Скажите, почему так происходит и как предотвратить это?
При записи/чтения "trade.db" и "trade2.db" всё проходит нормально.

Добавлено через 2 часа 47 минут
Как оказалось, SharedPreferences не при чем.
Но проблема остается!
Java
1
2
3
4
int number = 1;
String result1 = "abcde1"; //в отладчике: char[6], "abcde1"
String result2 = "abcde" + number; //в отладчике: char[16], "abcde1"
boolean is_equals = result1.equals(result2); //тут true
Если в 3-й строке вместо переменной number вставить число 1, то всё нормально.
Что за черт? Откуда лишние символы?

Добавлено через 13 минут
Java
1
String result3 = "abcde".concat("" + number);
Вот при такой конкатенции строк не появляются лишние символы.
Почему раньше не сталкивался, не знаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2014, 16:53     SharedPreferences. Чудеса при putString/getString
Посмотрите здесь:

SharedPreferences Android
Android SharedPreferences
Android SharedPreferences putString и getString
SharedPreferences Android
GetString и оператор ? Android
Как проверить пустое SharedPreferences или нет при загрузке активити? Android
SharedPreferences Android
При повторном запуске приложения не загружаются сохраненные значения SharedPreferences Android
Android SharedPreferences
Android GetString не работает в классах?
Android Крашиться при запросе String number = c.getString(c.getColumnIndex("address");
Android Функция обратная getString()

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
contedevel
 Аватар для contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
20.06.2014, 19:46     SharedPreferences. Чудеса при putString/getString #2
Попробуйте использовать String.valueOf (number);
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 414
23.06.2014, 09:20  [ТС]     SharedPreferences. Чудеса при putString/getString #3
Нет. Так тоже лишние символы.
Так что использую concat().
Yandex
Объявления
23.06.2014, 09:20     SharedPreferences. Чудеса при putString/getString
Ответ Создать тему
Опции темы

Текущее время: 19:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru