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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Rm1
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 11
#1

Запись данных с использованием массива - Android

10.07.2015, 10:56. Просмотров 322. Ответов 1
Метки нет (Все метки)

Всем привет! Столкнулся с некорректной записью данных в файл и не могу додуматься, как решить проблему. Суть в следующем: из сети загружаются числовые значения (всего около 300). Для примера, 543, 734, 124, 452, 935 и так далее. Предположим, последнее число в этом списке 456. Затем эти значения присваиваются переменным Pl. Делаю это так:

Java
1
2
3
4
5
6
private String pl[] = new String[301];                                
private int Pl[] = new int[301];
 
for (int i = 1; i < 301; i++)
{pl[i] = ratingStr.substring(ratingStr.lastIndexOf("Numbers")+4+i*4, ratingStr.lastIndexOf("Numbers")+4+i*4);
Pl[i] = Integer.parseInt(pl[i]);}
После мне нужно запомнить эти значения переменных, чтобы при следующем запуске приложения не надо было заново их скачивать. Делаю так:

Java
1
2
3
4
5
6
7
8
9
private SharedPreferences sPpl[] = new SharedPreferences[301];
private String Spl[] = new String[301];
private String spl[] = new String[301];
private Editor edpl[] = new Editor [301];
 
sPpl[i] = gameContext.getSharedPreferences("Data", Context.MODE_PRIVATE);
edpl[i] = sPpl[i].edit();
edpl[i].putString(Spl[i], pl[i].toString());
edpl[i].commit();
Файл "Data" создается, но при этом в нем всего одна запись - последнего в списке числа (в примере - 456). Причем без каких-либо атрибутов (должно быть, если не ошибаюсь, Spl300=456). Мне надо, чтобы в файл попали все 300 чисел. Если прописать для каждой переменной код, как выше, то все получается. Но это куча лишних строк...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 10:56     Запись данных с использованием массива
Посмотрите здесь:

Программирование с использованием акселерометра Android
Структура данных с использованием SQLite Android
Подскажите лучший способ хранения данных, чтение/запись файлов Android
Как средствами джавы реализовать просмотр базы данных Access, SQL Server, SQL Server Compact и запись в нее? Android
Android Организация большого массива данных
Android Запись данных в 2 таблицы SQLite
Заполнение массива данных циклом с интревалом (15 минут) Android
Как перехватить пакет (запрос) данных при текущей передаче данных? Android
Like Button с использованием VK API Android
Android Отправка массива данных из андроид приложения на сервер по http
Android Запись массива в TextView
Чтение и запись данных в локальную БД SQLite Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 1
10.07.2015, 11:24     Запись данных с использованием массива #2
массив Editor и SharedPreferences ??? ну и ну
программируешь наугад?

я правильно понял - надо записать и считать массив объектов типа Integer ?

Добавлено через 20 минут
где-то в активити создаем два метода
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    private String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        for (Integer i: arr) {
            sb.append(i.toString()).append(" ");
        }
        return sb.toString().trim();
    }
 
    private int[] stringToArray(String str) {
        String[] strings = str.split(" ");
        int[] arr = new int[strings.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.valueOf(strings[i]);
        }
        return arr;
    }
сохраняем массив в виде строки
Java
1
2
3
        SharedPreferences settings = getSharedPreferences("Data", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = settings.edit();
        editor.putString("myLolArray", arrayToString(arr)).apply();
читаем массив из preferences
Java
1
2
SharedPreferences settings = getSharedPreferences("Data", Context.MODE_PRIVATE)
int[] myIntArray = stringToArray(settings.getString("myLolArray", ""));
Yandex
Объявления
10.07.2015, 11:24     Запись данных с использованием массива
Ответ Создать тему
Опции темы

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